#include #include #include using namespace atcoder; using mint = modint998244353; using namespace std; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf (long long)1000000000000000000 long long len[30]; vector> Xcnt(26),Ycnt(26); vector> Fcnt(26); long long m,nn; long long get(int f, long long n,int ind,bool flag){ //cout<=n){ return get(f-1,n,ind,true); } ret += Fcnt[ind][f-1]; n -= len[f-1]; if(n<=m){ //cout<>X>>Y; nn = X.size(); m = Y.size(); len[0] = nn; for(int i=1;i<30;i++){ len[i] = min(len[i-1] * 2 + m, Inf); } rep(i,26){ Xcnt[i].resize(nn+1,0); rep(j,nn){ if(i==X[j]-'a'){ Xcnt[i][j+1] = 1; } Xcnt[i][j+1] += Xcnt[i][j]; } } //rep(i,Xcnt[0].size())cout<>Q; rep(_,Q){ long long L,R; scanf("%lld %lld",&L,&R); char c; cin>>c; cout<