#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; typedef long long int ll; typedef pair P; template struct SparseTable{ vector> spt; vector vlog; SparseTable(const vector &v){ int b=0, n=v.size(); while((1<(n)); for(int i=0; i>1]+1; } inline T rmq(int l, int r){ int b=vlog[r-l]; if(ismin) return min(spt[b][l], spt[b][r-(1<>n; vector s(n); for(int i=0; i>s[i]; } vector ind(n), rk(n); iota(ind.begin(), ind.end(), 0); sort(ind.begin(), ind.end(), [&](int i, int j){ return s[i] lcp(n-1); for(int i=0; i spt(lcp); int m; ll x, d; cin>>m>>x>>d; ll ans=0; for(int i=0; iq) swap(p, q); else q++; x=(x+d)%((ll)n*(n-1)); int p1=rk[p], q1=rk[q]; if(p1>q1) swap(p1, q1); ans+=spt.rmq(p1, q1); } cout<