#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> pii;
typedef long long ll;
typedef unsigned long long ull;
const int p=1e9+7;
int n,m,q;
string s;
int to[63][400003];
int st[63][400003];
int last[400003];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n>>m>>q>>s;
s+=s;
for(int i=1;i<s.length();i++)last[i]=(s[i]=='1'?i:last[i-1]);
for(int i=0;i<s.length();i++){
int t=min(i+m,(int)s.length());
if(last[t]==-1||last[t]<=i)st[i][0]=1;
else st[i][0]=last[t]-i;
if(i>=n&&st[i-n][0]==1)st[i-n][0]=st[i][0];
}
for(int t=1;t<=60;t++){
for(int i=0;i<s.length();i++){
st[i][t]=(st[i][t-1]+st[(i+st[i][t-1])%n][t-1])%p;
}
}
while(q--){
ll s,k;cin>>s>>k;
s--;
ll ans=s%p;
int now=s%n;
for(int t=60;t>=0;t--){
if(((k>>t)&1)==0)continue;
(ans+=st[now][t])%=p;
(now+=st[now][t])%=n;
}
cout<<(ans+1)%p<<'\n';
}
return 0;
}