#include using namespace std; //#include //using namespace atcoder; using ll=long long; using Graph=vector>>>; #define MAX 1000000 #define MOD 1000000007 #define INF 1000000000 int n=1; vector> order; vector order_base; vector solve(int a,int b,int i,int left,int right){ if(a<=left&&right<=b){ return order[i]; } if(b<=left||right<=a){ return order_base; } vector vec1=solve(a,b,2*i+1,left,(left+right)/2); vector vec2=solve(a,b,2*i+2,(left+right)/2,right); int N=order[i].size(); vector ret(N); for(int j=0;j &P){ d+=n-1; for(int j=0;j0){ d=(d-1)/2; for(int j=0;j>N>>M>>Q; while(n>q; if(q==1){ int D; vector P(N); cin>>D; D--; for(int j=0;j>P[j]; P[j]--; } update(D,P); }else if(q==2){ int S; cin>>S; vector P=solve(0,S,0,0,n); for(int j=0;j>L>>R; L--; vector P=solve(L,R,0,0,n); int ans=0; for(int i=0;i