#include using namespace std; #define ALL(x) begin(x),end(x) #define rep(i,n) for(int i=0;i<(n);i++) #define debug(v) cout<<#v<<":";for(auto x:v){cout<bool chmax(T &a,const T &b){if(abool chmin(T &a,const T &b){if(b ostream &operator<<(ostream &os,const vector&v){ for(int i=0;i<(int)v.size();i++) os< istream &operator>>(istream &is,vector&v){ for(T &x:v)is>>x; return is; } // a^n (mod m) ll pow_mod(ll a,ll n,ll m){ ll ret=1; while(n){ if(n&1) ret=ret*a%m; a=(a*a)%m; n/=2; } return ret; } ll inv_mod(ll a,ll m){ ll b=m,u=1,v=0,t; while(b){ t=a/b; swap(a-=t*b,b);swap(u-=t*v,v); } u%=m; if(u<0) u+=m; return u; } ll solve(string s,ll mod){ int n=(int)s.size(); int m=n/2; // 0:up, 1:eq, 2:lw auto left=[&](int flag,int put,int dig){ if(flag==0){ return flag; } if(flag==1){ if(put==dig) return 1; else if(put>> dp(m+1,vector>(3,vector(3,0))); dp[0][1][1]=1; for(int i=0;i>s; unk(s,1000000000); unk(s,1000000007); return 0; }