#include <bits/stdc++.h>
#define maxn 2086

using namespace std;

const int p = 1e9 + 7;

int n, k;
int f[maxn][maxn], sum[maxn][maxn];

int main(){
	scanf("%d%d", &n, &k);
	f[0][n + 1] = 1;
	for(int i = 1;i <= k;i++){
		for(int j = n + 2 - i;j;j--){
			f[i][j] = sum[i - 1][j] = (sum[i - 1][j + 1] + f[i - 1][j]) % p;
			//printf("%d %d %d--\n", i, j, f[i][j]);
		}
	}
	int ans = (f[k][1] + p - f[k - 1][1]) % p;
	for(int i = 1;i <= n - k - 1;i++) ans = ans * 2 % p;
	printf("%d", ans); 
}