// benzinkut uzemeltetes.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include <iostream>
#include <queue>
#define ll long long
using namespace std;
struct adat
{
ll t, h,ossz,ut=0;
bool ok = false;
};
vector<adat>x;
ll a, b,n,k;
int main()
{
ios_base::sync_with_stdio(false);
cin >> n >> k;
x.resize(n + 1);
for (int i = 1; i <= n; ++i)
{
cin >> x[i].t >> x[i].h;
}
ll maxi = 0,p;
for (int i = 1; i <= n; ++i)
{
int j = i - 1;
x[i].ossz = x[i].h;
while (j >= 1 && x[i].t - x[j].t < k)
{
if (x[j].ossz > x[i].ossz)
{
x[i].ossz = x[j].ossz;
x[i].ut = j;
x[i].ok = false;
}
--j;
}
if (j != 0)
{
if (x[j].ossz+x[i].h > x[i].ossz)
{
x[i].ossz = x[j].ossz + x[i].h;
x[i].ut = j;
x[i].ok = true;
}
}
}
cout << x[n].ossz<<"\n";
deque<ll>ans;
int i = n;
while (x[i].ut)
{
if(x[i].ok)
ans.push_front(i);
i = x[i].ut;
}
ans.push_front(i);
cout<< ans.size() << " ";
for (auto& e : ans)cout << e << " ";
return 0;
}
// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu
// Tips for Getting Started:
// 1. Use the Solution Explorer window to add/manage files
// 2. Use the Team Explorer window to connect to source control
// 3. Use the Output window to see build output and other messages
// 4. Use the Error List window to view errors
// 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
// 6. In the future, to open this project again, go to File > Open > Project and select the .sln file