Дніпропетровськ підкорює космос
Усім відомо, що Дніпропетровськ – космічна столиця України. Ракети-носії, двигуни та інші пристрої для підкорення космосу, виготовлені на Південному Машинобудівному Заводі відомі в усьому світі. Зовсім нещодавно, наприклад, була запущена американська ракета-носій Антарес на двигунах, виготовлених у КБ "Південне". Загалом, вивчення космосу силами Дніпропетровська не припиняється.
Дуже важливою задачею для космічних апаратів є зв'язок з Землею. Цей процес вирішили промоделювати. На комп'ютер передається перестановка натуральних чисел від 1 до n. При цьому можливі похибки при передачі даних, тому замість деякого числа a може бути передано число a-1, число a або a+1. Хотілось би відновити початкову перестановку за отриманим набором даних. Але виявилось, що зробити це однозначно можна не завжди. Ваша задача, як участника традиційного Всеукраїнського конкурсу "Мирний космос", знайти, скільки різних перестановок міг дати такий набір отриманих даних.
Вхідні дані
У першому рядку задано число n (1 ≤ n ≤ 10^5). У наступному рядку n чисел. Усі числа лежать у діапазоні від 0 до n+1.
Вихідні дані
Єдине число – відповідь до задачі. Так як число може бути дуже великим, виведіть його остачу при діленні на 1000000007 (10^9+7).