#include #include #include using namespace std; using namespace atcoder; using mint = modint998244353; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf32 1000000001 #define Inf64 1000000000000000001 constexpr int M = 10000001; int main(){ vector mp(M,-1); for(int i=2;i goal(M,0),cur(M,0); int ok = M; int m = 0; { int k; cin>>k; rep(i,k){ int p,e; cin>>p>>e; goal[p] = e; ok--; m = max(m,p); } } rep(i,m/2){ { int c = m-i; while(c!=1){ int p = mp[c]; if(cur[p]==goal[p])ok--; cur[p]++; if(cur[p]==goal[p])ok++; c /= p; } } { int c = i+1; while(c!=1){ int p = mp[c]; if(cur[p]==goal[p])ok--; cur[p]--; if(cur[p]==goal[p])ok++; c /= p; } } if(ok==M){ cout<