#include #include #include #define fo(i,a,b) for(int i=a;i<=b;i++) #define fd(i,a,b) for(int i=a;i>=b;i--) using namespace std; typedef long long ll; const int N=(1<<20)+5,Mo=998244353; int m,q,opt,x,y; int val[N]; char s[N]; void upd(int x) { if (s[x]=='0') val[x]=(val[x<<1]+val[x<<1|1])%Mo; else val[x]=(ll)val[x<<1]*val[x<<1|1]%Mo; } int main() { scanf("%d%d",&m,&q); scanf("%s",s+1); fo(i,1<>=1;x;x>>=1) upd(x); } else { scanf("%d",&x);x+=(1<>1);x>>=1) if (s[x>>1]=='1') ans=(ll)ans*val[x^1]%Mo; printf("%d\n",ans); } } return 0; }