E2. Chiori и выбор кукол (сложная версия)
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Это сложная версия этой задачи. Единственное различие между простой и сложной версиями заключается в ограничениях на $$$m$$$. Вы можете делать взломы, только если обе версии задачи сданы.

Chiori очень любит куклы и сейчас она собирается украсить свою спальню!

 

Так как Chiori коллекционирует куклы, всего у нее $$$n$$$ кукол, $$$i$$$-я из этих кукол имеет неотрицательное целое число $$$a_i$$$ ($$$a_i < 2^m$$$, $$$m$$$ дано). Chiori хочет выбрать некоторых кукол (возможно ноль) для украшения. Таким образом, всего существует $$$2^n$$$ способов.

Обозначим за $$$x$$$ побитовую xor сумму значений у кукол, выбранных Chiori (в случае, если Chiori не выбрала ни одной куклы, $$$x = 0$$$). Значением способа выбора кукол назовем количество битов равных $$$1$$$ в двоичном представлении $$$x$$$. Более формально, это число также равно количеству индексов $$$0 \leq i < m$$$, таких что $$$\left\lfloor \frac{x}{2^i} \right\rfloor$$$ нечетно.

Посчитайте для Chiori количество способов выбрать куклы со значением $$$i$$$ для всех целых $$$i$$$ от $$$0$$$ до $$$m$$$. Поскольку эти числа могут быть очень большими, вы должны посчитать их по модулю $$$998\,244\,353$$$.

Входные данные

В первой строке находится два целых числа $$$n$$$ и $$$m$$$ ($$$1 \le n \le 2 \cdot 10^5$$$, $$$0 \le m \le 53$$$)  — количество кукол и максимальное возможное значение выбора нескольких кукол.

Во второй строке находится $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$0 \le a_i < 2^m$$$)  — числа у кукол.

Выходные данные

Выведите $$$m+1$$$ целое число $$$p_0, p_1, \ldots, p_m$$$  — $$$p_i$$$ равно количеству способов выбрать несколько кукол, так чтобы полученное значение выбора кукол оказалось равным $$$i$$$ по модулю $$$998\,244\,353$$$.

Примеры
Входные данные
4 4
3 5 8 14
Выходные данные
2 2 6 6 0 
Входные данные
6 7
11 45 14 9 19 81
Выходные данные
1 2 11 20 15 10 5 0