Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 

Красивые последовательности

(Время: 2 сек. Память: 128 Мб Сложность: 57%)

Дано множество A, элементами которого являются различные целые числа от 1 до 8.

Рассмотрим последовательность [a1, a2, ..., an] из n целых чисел, каждое из которых выбрано из множества A. Будем называть эту последовательность красивой, если для любого числа x все элементы последовательности, равные x, находятся на расстоянии не меньше x друг от друга. Иначе говоря, для любого числа x и для любых двух индексов 1 ≤ i < j ≤ n, таких, что ai = aj = x, должно выполняться неравенство j - i ≥ x.

Требуется посчитать количество красивых последовательностей для заданного числа n и множества A, и вывести остаток от деления этого количества на число 109+7.

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

В первой строке входного файла INPUT.TXT даны два целых числа n и m – длина последовательности и количество элементов множества A (1 ≤ n ≤ 100, 1 ≤ m ≤ 8).

Во второй строке ввода даны m различных целых чисел ai в порядке возрастания – элементы множества A (1 ≤ ai ≤ 8, ai < ai+1).

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

В выходной файл OUTPUT.TXT выведите одно целое число – остаток от деления количества красивых последовательностей на число 109+7.

Пример

INPUT.TXTOUTPUT.TXT
13 2
1 2
5

Пояснение к примеру

В примере красивыми являются последовательности [1, 1, 1], [1, 1, 2], [1, 2, 1], [2, 1, 1], [2, 1, 2]. Последовательности [2, 2, 2], [1, 2, 2], [2, 2, 1] красивыми не являются, так как в каждой из них существуют два элемента со значением 2, находящиеся на расстоянии 1 друг от друга.


Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

[Обсуждение] [Все попытки] [Лучшие попытки]


 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 Книги Фёдора Меньшикова
 ЕГЭ по информатике
 Тренировочные олимпиады
 Школьный этап
 Муниципальный этап
 Региональный этап
 Полуфинал ВКОШП
 Личное первенство СФУ
 2006 / 2007
 2007 / 2008
 2008 / 2009
 2009 / 2010
 2010 / 2011
 2011 / 2012
 2012 / 2013
 2013 / 2014
 2014 / 2015
 2015 / 2016
 2016 / 2017
 2017 / 2018
 2018 / 2019
 2019 / 2020
 2020 / 2021
 2021 / 2022
 2022 / 2023
 2023 / 2024
 A. Разделение прямоугольника
 B. Произведение Фибоначчи
 C. Робот-пылесос
 D. Разноцветные точки
 E. Метрострой
 F. Красивые последовательности
 G. Камни
 H. Обыкновенная задача про строки

Красноярский краевой Дворец пионеров, (c)2006 - 2024, ИНН 246305493507, E-mail: admin@acmp.ru