#include using namespace std; #define ALL(x) x.begin(),x.end() #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>p>>k; rep(i,k){ ll d[2]={}; d[0]+=c[0];d[0]%=mod;// 0->0 (+) d[0]+=c[1];d[0]%=mod;// 1~p-1->0 (+) d[1]+=c[1]*(p-1)%mod;d[1]%=mod; d[1]+=c[0]*(p-1)%mod;d[1]%=mod; d[0]+=c[1];d[0]%=mod; d[0]+=c[0]*p%mod;d[0]%=mod; d[1]+=c[1]*(p-1)%mod;d[1]%=mod; swap(c,d); // debug(c); } cout<