#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int mod=1e9+7;
int n,m,f[3005][3005];
int add(int a,int b){return a+b>=mod?a+b-mod:a+b;}
int main(){
	scanf("%d%d",&n,&m);
	for(int i=0;i<=n;i++) f[0][i]=1;
	for(int i=0;i<m;i++){
		for(int p=0;p<=n;p++)if(f[i][p]){
			if(p){
				f[i+1][p]=add(f[i+1][p],f[i][p]);
				f[i+1][p-1]=add(f[i+1][p-1],f[i][p]);
			}
			if(p<n){
				f[i+1][p]=add(f[i+1][p],f[i][p]);
				f[i+1][p+1]=add(f[i+1][p+1],f[i][p]);
			}
		}
	}
	int ans=0;
	for(int i=0;i<=n;i++) ans=add(ans,f[m][i]);
	memset(f,0,sizeof(f));
	for(int i=0;i<n;i++) f[0][i]=1;
	for(int i=0;i<m;i++){	
		for(int p=0;p<n;p++)if(f[i][p]){
			if(p){
				f[i+1][p]=add(f[i+1][p],f[i][p]);
				f[i+1][p-1]=add(f[i+1][p-1],f[i][p]);
			}
			if(p<n-1){
				f[i+1][p]=add(f[i+1][p],f[i][p]);
				f[i+1][p+1]=add(f[i+1][p+1],f[i][p]);
			}
		}
	}
	for(int i=0;i<n;i++) ans=add(ans,mod-f[m][i]);
	printf("%d",ans);
	return 0;
}