题目描述
对于一个整数序列 A=(a1,a2,...,an) ,考虑以下的递归过程:首先等概率地选取 A 中一个值 ak ,将序列 A 中所有小于 ak 的元素按照在 A 中的位置依次排列为序列 A1 ,将序列 A 中所有大于 ak 的元素按照 A 中的位置依次排列为序列 A2 ,然后对于序列 A1、A2 分别重复以上过程,直至序列为空时结束递归。一次递归的时间代价表示为过程中所有序列的长度和(包括最开始的序列) ,由于递归方式不确定,记 T(A) 为对序列 A 执行上述过程的期望时间代价。
现给定 n,m ,请对于所有长度为 n ,且满足 1≤ai≤m(i=1,2...n) 的整数序列 A ,求出 T(A) 的和。答案对 998244353 取模。
输入格式
从标准输入读入数据。
输入仅一行,两个正整数 n,m,分别表示序列的长度和元素的取值范围。
输出格式
输出到标准输出。
输出一行一个整数,表示 T(A) 的和对 998244353 取模的结果。
样例
输入
3 2
输出
32
样例
输入
5 4
输出
9236
样例
输入
25 15
输出
907094177
数据范围
对于 20% 的数据:n,m≤5 。
对于 50% 的数据:n,m≤30 。
对于另外 20% 的数据:n≤5,m≤109 。
对于所有测试数据保证:1≤n≤100,1≤m≤109 。