Абсолютно неадекватні операції
Дано масив з цілих чисел . За одну операцію можна зробити наступне:
Вибрати деяке , для якого .
Нехай . Тоді ми додаємо до та , а замінюємо на .
Наприклад, якщо масив мав вигляд , то ми можемо обрати , виконати операцію, і отримати масив .
Ви можете застосовувати дану операцію до масиву довільну кількість разів. Скільки різних масивів ви можете отримати? Якщо ви можете отримати нескінченну кількість масивів, виведіть , інакше виведіть число цих масивів за модулем .
Два масиви вважаються різними, якщо вони відрізняються принаймні в одній позиції.
Входные данные
Перший рядок вхідних даних містить єдине ціле число () — довжину масиву.
Другий рядок містить цілих чисел () — елементи масиву.
Выходные данные
Якщо ви можете отримати нескінченну кількість масивів, виведіть , інакше виведіть число цих масивів за модулем .
Примеры
Примечание
В першому прикладі, ми можемо застосувати операцію лише для , що дає два різні масиви: та .
В другому прикладі, яку б операцію ми не застосували, масив лишатиметься рівним .