Elly has a squared sheet of paper with rows and columns. The girl wants to fill each of the squares with red or blue. She insists that each square with a certain color has at least one more square with the same color in the same row or the same column ("so it does not feel alone").
For each square it is enough to have a matching-by-color square either оn the same row OR on the same column - but not necessarily both (although this is allowed). It is also allowed there to be more than one matching square in the same row or column - for example an entire row filled with red is okay. It is not required that both colors are used - thus the whole paper being blue for example might be a valid filling.
The girl now wonders in how many ways she can fill the sheet of paper. Two ways of filling are considered different, if there is a cell that is colored red in one of filling and blue in another.
Input
On the only line of the standard input are given two integers and - the number of rows and columns of the paper, respectively.
Output
On the standard output, print one integer: the number of different ways to fill the paper. Since the answer can be rather large, print only its remainder when divided by .
Constraints
- In 30% of the test cases
- In 60% of the test cases
Example
stdin
3 3
stdout
284
stdin
5 4
stdout
898416
stdin
13 17
stdout
390317257
stdin
42 42
stdout
193467102