No tag edit access

E. Team Work

time limit per test

2 secondsmemory limit per test

256 megabytesinput

standard inputoutput

standard outputYou have a team of *N* people. For a particular task, you can pick any non-empty subset of people. The cost of having *x* people for the task is *x*^{k}.

Output the sum of costs over all non-empty subsets of people.

Input

Only line of input contains two integers *N* (1 ≤ *N* ≤ 10^{9}) representing total number of people and *k* (1 ≤ *k* ≤ 5000).

Output

Output the sum of costs for all non empty subsets modulo 10^{9} + 7.

Examples

Input

1 1

Output

1

Input

3 2

Output

24

Note

In the first example, there is only one non-empty subset {1} with cost 1^{1} = 1.

In the second example, there are seven non-empty subsets.

- {1} with cost 1^{2} = 1

- {2} with cost 1^{2} = 1

- {1, 2} with cost 2^{2} = 4

- {3} with cost 1^{2} = 1

- {1, 3} with cost 2^{2} = 4

- {2, 3} with cost 2^{2} = 4

- {1, 2, 3} with cost 3^{2} = 9

The total cost is 1 + 1 + 4 + 1 + 4 + 4 + 9 = 24.

Codeforces (c) Copyright 2010-2019 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Oct/22/2019 05:40:33 (f2).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|