Statement is not available in English language
H. Сбалансированные деревья
ограничение по времени на тест
0.5 секунд
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Скажем, что дерево с выделенным корнем и упорядоченными списками сыновей для каждой вершины сбалансированное, если все расстояния от корня до листьев равны. Найдите количество различных сбалансированных деревьев из $$$n$$$ вершин. Два дерева считаются различными, если им соответствует разные скобочные последовательности.

Более подробно, каждое дерево можно представить в виде скобочной последовательности. Для этого определим функцию $$$f$$$ следующим образом:

  • если $$$x$$$ — лист, то $$$f(x) = ()$$$;
  • иначе $$$f(x) = (f(\texttt{сын 1}) f(\texttt{сын 2}) ... f(\texttt{сын n}))$$$.

Значение функции $$$f$$$ от корня и даст соответствующую скобочную последовательность.

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

Единственная строка содержит одно целое число $$$n$$$ ($$$1 \leqslant n \leqslant 500$$$) — количество вершин в дереве.

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

Выведите одно целое число — количество сбалансированных деревьев из $$$n$$$ вершин, взятое по модулю $$$10^9+7$$$.

Примеры
Входные данные
1
Выходные данные
1
Входные данные
2
Выходные данные
1
Входные данные
3
Выходные данные
2
Входные данные
4
Выходные данные
3
Входные данные
5
Выходные данные
5
Входные данные
6
Выходные данные
8