#include<cstdio>
#include<iostream>
using namespace std;
int n,m,ans;
int f[3010][3010][2];
int mod=1e9+7;
int plu(int &a,int b)
{
	a+=b;
	if (a>=mod) a-=mod;
}
int main()
{
	scanf("%d%d",&m,&n);
	for (int i=0;i<=m;i++)
		f[0][i][0]=1; 
	for (int i=1;i<=n;i++)
		for (int j=0;j<=m;j++)
		{
			int k=m-j;
			if (j)
			{
				plu(f[i][j][1],f[i-1][j][1]);
				plu(f[i][j][1],f[i-1][j-1][1]);
				if (j==1)
				{
					plu(f[i][j][1],f[i-1][j][0]);
					plu(f[i][j][1],f[i-1][j-1][0]);
				}
				else
				{
					plu(f[i][j][0],f[i-1][j][0]);
					plu(f[i][j][0],f[i-1][j-1][0]);
				}
			}
			if (k)
			{
				plu(f[i][j][1],f[i-1][j][1]);
				plu(f[i][j][1],f[i-1][j+1][1]);
				if (j==0)
				{
					plu(f[i][j][1],f[i-1][j][0]);
					plu(f[i][j][1],f[i-1][j+1][0]);
				}
				else
				{
					plu(f[i][j][0],f[i-1][j][0]);
					plu(f[i][j][0],f[i-1][j+1][0]);
				}	
			}
		}
	for (int i=0;i<=m;i++)
		plu(ans,f[n][i][1]);
	printf("%d",ans);
}