#include <iostream>
#include <map>
#include <vector>

using namespace std;

struct fin_ssz
{
    int fin;
    int ssz;
};

int main()
{
    int n,m,x,y;
    cin>>n>>m;
    map<int,struct fin_ssz> vonat;
    for(int i=1;i<=n;i++)
    {
        cin>>x>>y;
        auto it=vonat.find(x);
        if (it!=vonat.end())
        {
           if(y>vonat[x].fin)
           {
               vonat[x].fin=y;
               vonat[x].ssz=i;
           }
        }
        else
        {
            vonat[x].fin=y;
            vonat[x].ssz=i;
        }
    }
    int atsz=0,meddig,ujmeddig,ujssz;
    vector<int> sorszamok;
    auto it=vonat.find(1);
        if (it!=vonat.end())
        {
            meddig=vonat[1].fin;
            ujmeddig=meddig;
            sorszamok.push_back(vonat[1].ssz);
            if(meddig==m)
            {
                cout<<"0"<<endl;
                cout<<vonat[1].ssz;
                return 0;
            }
            for(int i=1;i<=n;i++)
            {
                if(vonat[i].fin>ujmeddig)
                {
                    ujmeddig=vonat[i].fin;
                    ujssz=vonat[i].ssz;
                }
                if(i==meddig)
                {
                    if(ujmeddig<=meddig && meddig!=m)
                    {
                        cout<<"-1";
                        return 0;
                    }
                    atsz++;
                    sorszamok.push_back(ujssz);
                    if(ujmeddig==m)
                    {
                         break;
                    }
                    meddig=ujmeddig;
                }
            }
        }
        else
        {
            cout<<"-1";
        }
        cout<<atsz<<endl;
    for (int elem : sorszamok) {
        cout << elem << " ";
}
return 0;
    }