#include<bits/stdc++.h>
using namespace std;
int n,m;

struct node
{
    int a,b;
}manx[100000];
bool cmp(node aa,node bb)
{
    return aa.a < bb.a;
}
int main()
{
    cin >> n >> m;
    for(int i = 0 ; i < n ; i ++ )
    {
        cin >> manx[i].a >> manx[i].b;
    }
    sort(manx,manx + n,cmp);
    priority_queue<int>q;
    int sum = 0,num = 0;
    for(int i = 1 ; i <= m ; i ++ )
    {
        while(1){
            if(manx[num].a <= i && num < n)
            {
                q.push(manx[num].b);
                num ++ ;
            }
            else
                break;
        }
        if(!q.empty())
        {
            sum += q.top();
            q.pop();
        }
        else
            continue;

    }
    cout << sum << endl;
    return 0;
}