#include using namespace std; #define MOD 998244353 long long modpow(long long a, long long n, long long mod) { long long res = 1; while (n > 0) { if (n & 1) res = res * a % mod; a = a * a % mod; n >>= 1; } return res; } int main() { long long N, M; cin >> N >> M; long long ans = 0; for (int i = 1; i <= M; i++) { ans += ((((i * (i + 1) / 2) % MOD) * modpow(i, N - 1, MOD) % MOD) * (N % MOD) % MOD - (((i * (i - 1) / 2) % MOD) * modpow(i - 1, N - 1, MOD) % MOD) * (N % MOD) % MOD + MOD) * i % MOD; long long i_ = M - i + 1; ans -= (((((M * (M + 1) - i * (i - 1)) / 2) % MOD) * modpow(i_, N - 1, MOD) % MOD) * (N % MOD) % MOD - ((((M * (M + 1) - i * (i + 1)) / 2) % MOD) * modpow(i_ - 1, N - 1, MOD) % MOD) * (N % MOD) % MOD + MOD) * i % MOD; } cout << (ans % MOD + MOD) % MOD << endl; }