Піца
Вася планує приготувати піцу для m своїх друзів. У нього є n додаткових інгредієнтів, кожен з яких можна додати в піцу або не додавати. Вася може використати всі інгредієнти або жодного з них. Таким чином, він може приготувати піцу 2^n
різними способами.
Однак не кожна піца сподобається друзям Васі. Кожен друг має список побажань, який містить вимоги на кшталт «хочу, щоб піца була з інгредієнтом t» або «хочу, щоб інгредієнта t в піці не було». Друзі Васі не вибагливі, тому піца, яка враховує хоча б одне побажання зі списку друга, їх задовольнить.
Вася хоче приготувати піцу так, щоб хоча б одне побажання кожного з його друзів було виконано.
Визначте, скількома способами Вася може приготувати піцу, щоб задовольнити всіх своїх друзів. Оскільки це число може бути дуже великим, виведіть його залишок від ділення на 998244353.
Вхідні дані
У першому рядку вхідних даних знаходяться цілі числа n і m — кількість інгредієнтів і кількість друзів Васі відповідно (1 ≤ n ≤ 1000, 1 ≤ m ≤ 20).
Кожен з наступних m рядків відповідає одному з друзів Васі і містить ціле число a[i]
— кількість побажань у списку, за яким слідує a[i]
чисел b[i,j]
— опис побажань у списку (1 ≤ a[i] ≤ 100, -n ≤
b[i,j] ≤ n, b[i,j] ̸= 0)**. Якщо **
b[i,j]** позитивне, то **i**-й друг має побажання «хочу, щоб піца була з інгредієнтом **
b[i,j]**», якщо негативне, то **i**-й друг має побажання «хочу, щоб інгредієнта **
-b[i,j]` в піці не було».
Жоден інгредієнт не входить до списку одного друга більше одного разу.
Вихідні дані
Виведіть кількість різних способів приготувати піцу, які задовольнять усіх друзів Васі, взяте по модулю 998244353.
Зауваження
У першому прикладі підходять такі набори інгредієнтів: (1), (3), (1; 3), (1; 4), (1; 3; 4).
У другому прикладі інгредієнта 42 не повинно бути в піці, а решта інгредієнтів можуть бути присутніми або ні. Відповідь дорівнює залишку від ділення 267 на 998244353.