#include #include int main(){ int N; std::cin>>N; std::queue> poly; for(int i=0; i>A; poly.push({1,A}); } while(poly.size()>1){ std::vector bef=move(poly.front()); poly.pop(); poly.push(atcoder::convolution(bef,poly.front())); poly.pop(); } atcoder::modint998244353 ans=0; for(int i=0; i<=N; i++){ ans+=(atcoder::modint998244353(i).pow(N-i))*poly.front()[i]; } std::cout<