На Новий рік фермер Джон вирішив подарувати своїм коровам святкове бінарне дерево пошуку (БДП)!
Щоб створити БДП, фермер Джон починає з перестановки a = \{a_1, a_2, \ldots, a_n\} чисел від до , де n \le 300. Потім він виконує наступний псевдокод з аргументами і .
generate(l, r):
if l > r, return пусте піддерево;
x = argmin_{l <= i <= r} a_i; // індекс min a_i in {a_l, ..., a_r}
return БДП з x у корені,
generate(l, x-1) як ліве піддерево,
generate(x+1, r) як праве піддерево;Наприклад, перестановка \{3, 2, 5, 1, 4\} генерує наступне БДП:
4
/ \
2 5
/ \
1 3Нехай d_i(a) позначає глибину вузла в дереві, що відповідає , тобто кількість вузлів на шляху від a_i до кореня. У наведеному вище прикладі d_4(a) = 1, d_2(a) = d_5(a) = 2, і d_1(a) = d_3(a) = 3.
Кількість інверсій дорівнює кількості пар цілих чисел таких, що 1 \le i < j \le n і a_i > a_j. Корови знають, що , яке фермер Джон буде використовувати для генерації БДП, має рівно інверсій (0 \le k \le n \cdot (n - 1) / 2). Для всіх , що задовольняють цій умові, обчислити залишок від ділення \sum_a d_i(a) на для кожного 1 \le i \le n.
Єдиний рядок містить три цілі числа , і . є простим числом у діапазоні [10^8, 10^9 + 9].
Виведіть цілих чисел, рівних \sum_a d_i(a) \pmod{m} для кожного 1 \le i \le n.
Приклад 1
Приклад 2
Приклад 1: єдиною перестановкою буде a = \{1, 2, 3\}.
Приклад 2: існують дві перестановки a = \{1, 3, 2\} і a = \{2, 1, 3\}.