Podczas wizyty na targu rolnym, Busy Beaver zatrzymuje się, aby obejrzeć ulicznego magika. Magik prezentuje rząd $N$ pudełek, zawierających $M$-bitowe nieujemne liczby całkowite $a_1, a_2, \dots, a_N$, gdzie $0 \le a_i < 2^M$ dla wszystkich $1 \le i \le N$.
Magik w magiczny sposób sortuje pudełka w kolejności niemalejącej za pomocą serii magicznych zamian. W pojedynczej magicznej zamianie magik wybiera indeks $i$ ($1 \le i < N$) taki, że reprezentacje binarne $a_i$ oraz $a_{i+1}$ różnią się dokładnie o jeden bit, a następnie zamienia $a_i$ oraz $a_{i+1}$ miejscami.
Obserwując występ, Busy Beaver zastanawia się nad ograniczeniami tej sztuczki. Spośród wszystkich $2^{MN}$ możliwych początkowych wartości $a_1, a_2, \dots, a_N$ w pudełkach, ile z nich można posortować w kolejności niemalejącej za pomocą magicznych zamian? Ponieważ liczba ta może być duża, Busy Beaver zadowoli się wynikiem modulo $10^9 + 7$.
Wejście
Pierwsza i jedyna linia wejścia zawiera dwie liczby całkowite $N$ oraz $M$ ($1 \le N, M \le 50$).
Wyjście
Wypisz jedną liczbę całkowitą: liczbę ciągów, które można posortować za pomocą magicznych zamian, modulo $10^9 + 7$.
Podzadania
Istnieje pięć podzadań dla tego problemu:
- (10 punktów): $1 \le N, M \le 5$.
- (20 punktów): $1 \le M \le 4$.
- (10 punktów): $1 \le M \le 10$.
- (10 punktów): $1 \le M \le 15$.
- (50 punktów): Brak dodatkowych ograniczeń.
Przykład
Wejście 1
3 2
Wyjście 1
44
Wejście 2
50 1
Wyjście 2
898961331
Wejście 3
10 10
Wyjście 3
649370314
Uwagi
W pierwszym przykładzie jednym z ciągów, który można posortować za pomocą magicznych zamian, jest $[a_1, a_2, a_3] = [3, 1, 2]$, co przebiega następująco:
- Wybierz $i = 1$. Zauważ, że $a_1 = 3$ oraz $a_2 = 1$ różnią się dokładnie o jeden bit, więc jest to magiczna zamiana. Ciąg staje się $[1, 3, 2]$.
- Wybierz $i = 2$. Zauważ, że $a_2 = 3$ oraz $a_3 = 2$ różnią się dokładnie o jeden bit, więc jest to magiczna zamiana. Ciąg staje się $[1, 2, 3]$, co jest kolejnością niemalejącą.
Spośród $2^{3 \cdot 2} = 64$ początkowych ciągów, 44 z nich można posortować za pomocą magicznych zamian.