#include using namespace std; typedef long long ll; ll t = 1,n,m,k,q,l,r,a,b,c,u,x,ans[5000009],top[5000009],bot[5000009],opt,y,z,mod = 1e9 + 7; string s; struct st{ll x,y; /*bool operator < (const st &a) const{return x < a.x;};*/}; bool cmp(const st &a,const st &b){return a.x < b.x;} inline ll read(){ ll s = 0,w = 1; char ch = getchar(); while (ch > '9' || ch < '0'){ if (ch == '-') w = -1; ch = getchar();} while (ch <= '9' && ch >= '0') s = (s << 1) + (s << 3) + (ch ^ 48),ch = getchar(); return s * w; } ll qp(ll x,ll y){ ll a = 1,b = x; while (y){ if (y & 1) a = a * b % mod; b = b * b % mod,y >>= 1; } return a; } int main(){//t = read(); while (t --){ n = read(); for (ll i = 1;i <= n;i += 1){ opt = read(),x = read(); if (opt == 1){ if (top[x]) continue; top[x] = bot[x] = x; if (top[x - 1]) top[x] = top[x - 1]; if (bot[x + 1]) bot[x] = bot[x + 1]; top[bot[x]] = top[x],bot[top[x]] = bot[x]; ans[top[x]] += ans[x + 1] + 1; } else{ if (top[x] || (x > 1 && top[x - 1] != 1)) printf("%lld\n",ans[1] + 1); else printf("%lld\n",x + ans[x + 1] + 1); } } } return 0; }