#include #include #include using namespace atcoder; using mint = modint998244353; using namespace std; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf32 1000000000 #define Inf64 1000000000000000001LL long long get(vector s,vector t,long long mod){ long long res = 0; long long B = mod/7; rep(i,s.size()){ long long cur = 0; long long pows = 1; rep(j,s[i].size()){ cur *= B; cur += s[i][j]; cur %= mod; pows *= B; pows %= mod; } rep(j,60){ if((t[i]>>j)&1){ res *= pows; res += cur; res %= mod; } cur += cur * pows; pows *= pows; cur %= mod; pows %= mod; } } //cout<>K; vector s(K); vector t(K); rep(i,K)cin>>s[i]>>t[i]; int C = 0; for(long long i=975000000;i>=0;i--){ if(!isp(i))continue; C++; long long r0 = get(s,t,i); reverse(s.begin(),s.end()); reverse(t.begin(),t.end()); rep(i,K)reverse(s[i].begin(),s[i].end()); long long r1 = get(s,t,i); if(r0!=r1){ cout<<"No"<