Відбір на IOI#11512

Відбір на IOI

3 секунди
256 мегабайтів
Дуже складна

Сьогодні відбудеться один з відбіркових контестів на IOI. Зал для контесту представлений у вигляді рядка з комп'ютерів. Кожен комп'ютер пронумерований цілими числами від до зліва направо. У контесті братимуть участь учасників, пронумерованих цілими числами від до .

Маємо масив довжини , де a_i\:(1 \le a_i \le n) вказує на комп'ютер, біля якого -й учасник хоче сісти.

Також є масив довжини , що складається з символів і . Символ b_i вказує на сторону, з якої -й учасник заходить у зал. Символ означає, що учасник заходить у зал лівіше -го комп'ютера і рухається зліва направо, а символ означає, що учасник заходить у зал правіше -го комп'ютера і рухається справа наліво.

Учасники заходять у зал по черзі, від до . Кожен -й учасник заходить зі сторони b_i і прямує до комп'ютера a_i. Якщо цей комп'ютер вже зайнятий, учасник продовжує рух у тому ж напрямку до першого вільного комп'ютера. Після цього він сідає за цей комп'ютер. Якщо жоден комп'ютер не виявиться вільним, учасник засмучується і покидає змагання.

Засмученість -го учасника визначається як відстань між його бажаним комп'ютером (a_i) і комп'ютером, за який він врешті сів. Відстань між комп'ютерами і дорівнює |i - j|.

Числа в масиві можуть повторюватися. Існує n^m \cdot 2^m можливих пар масивів .

Розглянемо всі пари масивів , для яких жоден учасник не засмутиться. Для кожної з таких пар обчисліть суму засмученостей усіх учасників. Знайдіть суму цих чисел. Відповідь потрібно подати по модулю 10^9 + 9.

Вхідні дані

В єдиному рядку задано два цілі числа n, m~(1 \le m \le n \le 2000).

Вихідні дані

Виведіть одне ціле число — необхідну суму по модулю 10^9 + 9.

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading

Приклад 3

Loading
Loading

Приклад 4

Loading
Loading