Клітинний автомат — це набір клітин на сітці певної форми, що розвивається через дискретні часові кроки відповідно до правил, які визначають новий стан клітини на основі станів сусідніх клітин. Порядок клітинного автомата — це кількість клітин, які він містить. Клітини автомата порядку нумеруються від до .
Порядок клітини — це кількість різних значень, які вона може мати. Зазвичай значення клітини порядку вважаються цілими числами від до m-1.
Однією з основних характеристик клітинного автомата є тип сітки, на якій він функціонує. У цій задачі ми розглядаємо особливий вид клітинного автомата — круговий клітинний автомат порядку з клітинами порядку . Ми будемо позначати такий автомат як -автомат.
Відстань між клітинами та в -автоматі визначається як \min(|i-j|, n-|i-j|). -оточення клітини — це набір клітин, що знаходяться на відстані не більше ніж .
На кожному -кроці значення всіх клітин одночасно замінюються новими значеннями. Нове значення клітини після -кроку обчислюється як сума значень клітин, що входять до -оточення клітини , за модулем .
Наступне зображення демонструє -крок -автомата.

Завдання полягає в обчисленні стану -автомата після -кроків.
Перша строка вхідних даних містить чотири цілі числа , , та (1 \le n \le 500, 1 \le m \le 1000000, 0 \le d < n/2, 1 \le k \le 10000000). Друга строка містить цілих чисел від до m-1 — початкові значення клітин автомата.
Виведіть значення клітин -автомата після -кроків.
Приклад 1