#include<bits/stdc++.h>
using namespace std;
#define nn 3008
#define int long long 
#define mod 1000000007
int dp[2][nn][2],n,m;
void add(int&x,int y){
	x=(x+y)%mod;
}
signed main(){
	scanf("%lld%lld",&n,&m);
	int now=1;for(int i=0;i<=n;i++) dp[now][i][i==0]=1;
	while(m--){
		now^=1;memset(dp[now],0,sizeof dp[now]);
		for(int i=0;i<=n;i++)for(int j=0;j<2;j++){
			int res=dp[now^1][i][j];
			//bb
			if(i) add(dp[now][i-1][j|(i==1)],res);
			//rr
			add(dp[now][i+1][j],res);
			//br
			if(i) add(dp[now][i][j|(i==1)],res);
			//rb
			if(i<n) add(dp[now][i][j],res);
			
		}
	}
	int ans=0;
	for(int i=0;i<=n;i++) add(ans,dp[now][i][1]);
	cout<<ans;
	return 0;
}