#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=100000;
struct tree{
int ls,rs;
ll sum;
int lazy,cor;
}t[N*100+10];
int root,tot;
int build()
{
tot++;
t[tot].sum=t[tot].ls=t[tot].rs=t[tot].cor=0;
t[tot].lazy=-1;
return tot;
}
void spread(int p,ll l,ll r)
{
ll mid=(r+l)>>1;
if(t[p].lazy!=-1)
{
if(!t[p].ls) t[p].ls=build();
if(!t[p].rs) t[p].rs=build();
t[t[p].ls].sum=(mid-l+1)*t[p].lazy;
t[t[p].rs].sum=(r-mid)*t[p].lazy;
t[t[p].ls].lazy=t[t[p].rs].lazy=t[p].lazy;
t[t[p].ls].cor=t[t[p].rs].cor=0;
t[p].lazy=-1;
}
if(t[p].cor)
{
t[p].cor=0;
if(!t[p].ls) t[p].ls=build();
if(!t[p].rs) t[p].rs=build();
t[t[p].ls].sum=(mid-l+1)-t[t[p].ls].sum;
t[t[p].rs].sum=(r-mid)-t[t[p].rs].sum;
t[t[p].ls].cor^=1;
t[t[p].rs].cor^=1;
if(t[t[p].ls].lazy!=-1) t[t[p].ls].lazy^=1;
if(t[t[p].ls].lazy!=-1) t[t[p].rs].lazy^=1;
}
}
void insert(int p,ll l,ll r,ll x,ll y,int k)
{
if(x<=l && y>=r)
{
t[p].sum=k*(r-l+1);
t[p].lazy=k;
t[p].cor=0;
return;
}
spread(p,l,r);
ll mid=(r+l)>>1;
if(x<=mid)
{
if(!t[p].ls) t[p].ls=build();
insert(t[p].ls,l,mid,x,y,k);
}
if(y>=mid+1)
{
if(!t[p].rs) t[p].rs=build();
insert(t[p].rs,mid+1,r,x,y,k);
}
t[p].sum=t[t[p].ls].sum+t[t[p].rs].sum;
}
void change(int p,ll l,ll r,ll x,ll y)
{
if(x<=l && y>=r)
{
t[p].sum=(r-l+1)-t[p].sum;
t[p].cor^=1;
if(t[p].lazy!=-1) t[p].lazy^=1;
return;
}
spread(p,l,r);
ll mid=(r+l)>>1;
if(x<=mid)
{
if(!t[p].ls) t[p].ls=build();
change(t[p].ls,l,mid,x,y);
}
if(y>=mid+1)
{
if(!t[p].rs) t[p].rs=build();
change(t[p].rs,mid+1,r,x,y);
}
t[p].sum=t[t[p].ls].sum+t[t[p].rs].sum;
}
ll ask(int p,ll l,ll r)
{
if(l==r)
{
return l;
}
spread(p,l,r);
ll mid=(r+l)>>1;
if(t[p].sum==0) return l;
if(t[p].sum==(r-l+1)) return r+1;
if(t[t[p].ls].sum<(mid-l+1))
{
return ask(t[p].ls,l,mid);
}
else
{
return ask(t[p].rs,mid+1,r);
}
}
int main()
{
int q;
scanf("%d",&q);
root=build();
for(int i=1;i<=q;i++)
{
int k;
ll l,r;
scanf("%d%lld%lld",&k,&l,&r);
if(k==1) insert(1,1,1e18,l,r,1);
else if(k==2) insert(1,1,1e18,l,r,0);
else change(1,1,1e18,l,r);
printf("%lld\n",ask(1,1,1e18));
}
return 0;
}