#include using namespace std; #define rep(i,n) for(int i=0;i<(int)(n);++i) template struct segtree{ public: segtree(const vector&v):_n((int)v.size()){ log=ceil_pow2(_n); size=1<(2*size,e()); rep(i,_n)d[size+i]=v[i]; for(int i=size-1;1<=i;--i)update(i); } void set(int p,S x){ p+=size; d[p]=x; for(int i=1;i<=log;++i)update(p>>i); } S get(int p){ return d[p+size]; } S prod(int l,int r){ S sml=e(),smr=e(); l+=size; r+=size; while(l>=1; r>>=1; } return op(sml,smr); } private: int _n,size,log; vectord; void update(int k){ d[k]=op(d[2*k],d[2*k+1]); } static int ceil_pow2(int n){ int x=0; while((1<sync_with_stdio(0); int Q;cin>>Q; segtreeseg(vector(2<<17,e())); int cur=0; while(Q--){ int qt,x;cin>>qt>>x; if(qt==1){ seg.set(cur++,x); }else{ cout<