B. Modular Arithmetic
time limit per test
0.5 seconds
memory limit per test
1024 megabytes
input
standard input
output
standard output

Syl learned today about Modular Arithmetic. She wants to test her knowledge with various questions on addition, subtraction, multiplication, and exponentiation. To have an answer key, she asked you to create a program that solves these operations. As a good computer scientist, the chosen modulus is $$$10^9 + 7$$$.

Be careful, as the input numbers can be large.

Input

The input comes in the format "x ? y", where $$$1 \leq x,y \leq 10^{100000}$$$ and ? is the symbol of the operation performed, which can be +, -, *, or ^, for addition, subtraction, multiplication, and exponentiation, respectively.

Output

Print only one integer $$$0 \leq x \lt 10^9 + 7$$$, the result of the operation of $$$x$$$ and $$$y$$$ modulo $$$10^9 + 7$$$.

Examples
Input
1 + 1
Output
2
Input
1000000006 ^ 1000000006
Output
1
Input
1000000006 ^ 1000000007
Output
1000000006
Input
1000000007 ^ 1
Output
0
Input
10 - 11
Output
1000000006
Input
123456789123456789 * 987654321987654321987654321
Output
150430847
Input
912784 ^ 145
Output
788766592