During his interview, Shil came across a very difficult problem. The problem is as follows:  

A matrix V consisting of N rows and M columns is called beautiful if and only if it satisfies the following two conditions:  

1) Every cell of the matrix contains distinct natural number less or equal to N*M. 
2) For any two cells of the matrix, (i1,j1) and (i2,j2),   if (i1^j1) > (i2^j2) then v[i1][j1] > v[i2][j2] . 

^ denotes Bitwise XOR operation.

Note that 1 ≤ i1,i2 ≤ N and 1 ≤ j1,j2 ≤ M.

Given N and M , you have to calculatethe total number of beautiful matrices of size N x M. Since, problem is being very difficult for Shil to solve, he asks for your help.

Input format:
The Input consists of two integers N and M representing the number of rows and columns respectively.

Output format:
Output the total number of Beautiful Matrices of size N x M. Since, this answer can be large, output it modulo 10^9+7

Constraints:
1 ≤ N,M ≤ 1000

SAMPLE INPUT
2 2

SAMPLE OUTPUT
4

Explanation

The four possible matrices are:
[1 3]   |  [2 3]  | [1 4]  | [2 4]
[4 2]   |  [4 1]  | [3 2]  | [3 1]
from math import factorial
MOD=1000000007
n,m=map(int,raw_input().split())
cnt=[0]*(1<<20)
for i in range(1,n+1):
	for j in range(1,m+1):
		cnt[i^j]+=1
prod=1
for c in cnt:
	if c>1:
		prod=prod*factorial(c)%MOD
print prod