#include <bits/stdc++.h>
#define rep(i,n) for ((i)=1;(i)<=(n);(i)++)
#define per(i,n) for ((i)=n;(i)>=(1);(i)--)
using namespace std;

const int mod=1e9+7;
int n,m,dp[3005][3005][2];
int i,j,k,ans;
void inc(int &x,int y){
	x=(x+y>=mod)?x+y-mod:x+y;
}
int main(){
	cin>>n>>m;
	rep(i,n) dp[0][i][0]=1;
	dp[0][0][1]=1;
	rep(i,m){
		for(j=0;j<=n;j++){
			for(k=0;k<2;k++){
				if(!dp[i-1][j][k]) continue;
				if(j){
					inc(dp[i][j-1][k||(j==1)],dp[i-1][j][k]);
				}
				if(j){
					inc(dp[i][j][k||(j==1)],dp[i-1][j][k]);
				}
				if(j<n){
					inc(dp[i][j][k],dp[i-1][j][k]);
				}
				if(j<n){
					inc(dp[i][j+1][k],dp[i-1][j][k]);
				}
			}
		}
	}
	for(i=0;i<=n;i++){
		inc(ans,dp[m][i][1]);
	}
	cout<<ans<<endl;
	return 0;
}