Олимпиадный тренинг

Задача . E. Сережа и множества


Задача

Темы: дп *2500

Пусть множество S состоит из m различных интервалов [l1, r1], [l2, r2], ..., [lm, rm] (1 ≤ li ≤ ri ≤ n; li, ri — целые числа).

Пусть f(S) — максимальное количество интервалов, которое можно выбрать из множества S, чтобы среди них не было ни одной пары пересекающихся. Считается, что два интервала [l1, r1] и [l2, r2] пересекаются, если найдется целое число x, для которого выполняются неравенства: l1 ≤ x ≤ r1 и l2 ≤ x ≤ r2.

Сереже интересно: сколько существует таких множеств S, что f(S) = k? Посчитайте для него это количество по модулю 1000000007 (109 + 7).

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

Первая строка содержит целые числа n, k (1 ≤ n ≤ 500; 0 ≤ k ≤ 500).

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

В единственную строку выведите ответ на задачу по модулю 1000000007 (109 + 7).


Примеры
Входные данныеВыходные данные
1 3 1
23
2 3 2
32
3 2 0
1
4 2 2
2

time 1500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя