#include<bits/stdc++.h>
#define MOD 1000000007
using namespace std;
long long n , q;
string s;
inline long long hbit(long long i)
{
long long mid = 1;
while(mid <= i)mid<<=1;
return mid/2;
}
inline long long lbit(long long x)
{
return x&(-x);
}
int main()
{
cin>>n>>q>>s;
for(long long i , l,r, x ; i<= q ; i++)
{
cin>>l>>r>>x;
for(int j = l ; j<= r ; j++)
{
if(x&(x-1) == x)
{
x+=x;
x %= MOD;
continue;
}
if(s[j-1] == '1')
{
x += hbit(x);
x %= MOD;
}
else
{
x += lbit(x);
x %= MOD;
}
}
cout<<x<<endl;
}
return 0;
}
结构很简单,怎么会爆零呢