#include <bits/stdc++.h>
#define ll long long
#define db double
using namespace std;
const int INF=0x3f3f3f3f;
int h,w;
multiset<int> s;
map<int,int> mp;
int main()
{
    scanf("%d%d",&h,&w);
    for(int i=0;i<w;i++)
        s.insert(0),mp[i]=i;
    for(int i=0,x,y;i<h;i++)
    {
        scanf("%d%d",&x,&y);
        auto tmp=mp.lower_bound(x-1);
        int m=-1;
        while(tmp!=mp.end() && tmp->first<=y)
        {
            m=max(m,tmp->second);
            int p=(tmp->first)-(tmp->second);
            s.erase(s.find(p));
            mp.erase(tmp++);
        }
        if(m!=-1 && y<w)
        {
            s.insert(y-m);
            mp[y]=m;
        }
        printf("%d\n",s.empty()?-1:*s.begin()+i+1);
    }
    return 0;
}
