(k-1+next[id]-1)%t+1;
#include
#include
#define lson l,m,rt<<1
#define rson m+1,r,...1,2,3,4,6,8,9,10,12,16,18,20,24,30,32,36,40,48,60,64,72,80,84,90,96,100,108,120,128,144,160,168,180,192,200,1314521};
void PushUP(int rt)
{
sum[rt]=sum[rt<<1]+sum[rt<<1|1];
}
void build(int l,int r,...int rt)
{
if(l==r)
{
sum[rt]=1;
return ;
}
int m=(l+r)>>1;
build(...lson);
build(rson);
PushUP(rt);
}
int query(int k,int l,int r,int rt)
{
if(l==r)
{...sum[rt]--;
return l;
}
int m=(l+r)>>1;
int ret;
if(k<=sum[rt<<1]) ret=query(k