#include using namespace std; using ll = long long; const int MX = 100010; ll f[MX],inv[MX],fi[MX]; constexpr ll mod = 998244353; void solve(){ inv[1] = 1; for(int i=2;isz[y]) swap(x,y); par[x] = y; sz[y] += sz[x]; } bool same(int x, int y){ return find(x)==find(y); } int main(){ ll i,j,n,m; cin >> n >> m; init(n); for(i=0;i> x; x--; unite(i,x); } for(i=0;i<=5000;i++){ beki[i][0] = 1; for(j=1;j<=5000;j++) beki[i][j] = (beki[i][j - 1])*i%mod; } solve(); ll ans = 0; for(i=2;i<=m;i++){ ll s = 1; for(j=0;j