#include #include #include using namespace atcoder; using mint = modint998244353; using namespace std; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf 1000000001 int main(){ int N; cin>>N; vector> mp(N); for(int i=2;i= N)break; for(int j=t;j> mp2 = mp; for(int i=1;i Mp; rep(i,N){ for(auto a:mp2[i]){ Mp[a.first] = max(Mp[a.first],a.second); } } mint ans = 1; for(auto a:Mp){ ans *= mint(a.first).pow(a.second); } cout<