Nawiasy kwadratowe

Rozważamy ciąg 2n nawiasów otwierających bądź zamykających, po n każdego typu. Ciąg jest poprawny, jeśli jest poprawny ;), tj możemy sparować każdy nawias otwierający z różnymi nawiasami zamykającymi, tak by każdy nawias zamykający był po nawiasie otwierającym i nie było "przeplotów", np poprawnym napisem nawiasowym jest [[[]][]], zaś niepoprawnym [[][]][]][.

Mamy daną liczbę 1 <= n <= 25, liczbę 0 <= k <= 2n oraz rosnący ciąg liczb 1 <= s1 < s2 ... < sk < = 2n. Ile jest poprawnych ciągów nawiasowych takich, że na wszystkich pozycjach s1, s2, ..., sk są nawiasy otwierające?

Wejście, wyjście

W pierwszym wierszu wejścia są liczby 1 <= n <= 25, oraz 0 <= k <= 2n. W drugim wierszu wejścia jest rosnący ciąg liczb 1 <= s1 < s2 ... < sk < = 2n. Twój program powinien wypisać jedną liczbę - ile jest poprawnych ciągów nawiasowych takich, że na wszystkich pozycjach s1, s2, ..., sk są nawiasy otwierające.

Przykłady

Dane:

1 1
1

dają wynik:

1

Dane:

1 1
2

dają wynik:

0

Dane:

4 2
5 7

dają wynik:

2

Dane:

2 1
1

dają wynik:

2

Dane:

3 1
2

dają wynik:

3