#include #define pb push_back #define SZ(x) (int)(x).size() using namespace std; const int N=1e5+5,mod=998244353; typedef long long ll; template T mksm(T x,ll y){T z={1};while(y){if(y&1)z=z*x;x=x*x,y>>=1;}return z;} template struct mint{ unsigned v;static unsigned mod;mint()=default; template mint(T x){x%=(signed)getmod(),v=x<0?x+getmod():x;} static unsigned getmod(){return P>0?P:mod;} static void setmod(unsigned m){mod=m;} mint operator+() const{return *this;} mint operator-() const{return mint(0)-*this;} mint inv() const{return assert(v),mksm(*this,getmod()-2);} mint &operator+=(const mint &q){(v+=q.v)(const mint &p,const mint &q){return p.v>q.v;} friend bool operator<=(const mint &p,const mint &q){return p.v<=q.v;} friend bool operator>=(const mint &p,const mint &q){return p.v>=q.v;} friend istream &operator>>(istream &is,mint &a){is>>a.v;return is;} friend ostream &operator<<(ostream &os,const mint &a){os< unsigned mint<0>::mod=998244353; typedef mint MI; int n; MI fc[N],ifc[N],iv[N],ans; inline void init(int n){ fc[0]=1;for(int i=1;i<=n;i++)fc[i]=fc[i-1]*i; ifc[n]=1/fc[n];for(int i=n;i;i--)ifc[i-1]=ifc[i]*i; iv[1]=1;for(int i=2;i<=n;i++)iv[i]=iv[mod%i]*(mod-mod/i); } inline MI C(int x,int y){if(x>n;init(n); for(int i=2;i