Language: C++

#include <bits/stdc++.h>

using namespace std;

#ifdef DEBUG_MODE
	#define DBG(n) n;
#else
	#define DBG(n) ;
#endif
#define REP(i,n) for(ll (i) = (0);(i) < (n);++i)
#define PB push_back
#define MP make_pair
#define FI first
#define SE second
#define SHOW1d(v,n) {for(int W = 0;W < (n);W++)cerr << v[W] << ' ';cerr << endl << endl;}
#define SHOW2d(v,i,j) {for(int aaa = 0;aaa < i;aaa++){for(int bbb = 0;bbb < j;bbb++)cerr << v[aaa][bbb] << ' ';cerr << endl;}cerr << endl;}
#define ALL(v) v.begin(),v.end()
#define Decimal fixed<<setprecision(20)
#define INF 1000000000
#define LLINF 1000000000000000000
#define MOD 1000000007

typedef long long ll;
typedef pair<ll,ll> P;

void seica_add(ll &a,ll &b){
	a += b;
	if(a >= MOD)a -= MOD;
}

int dp[3333][3333][2];

int main(){
	
	ll n,m;cin >> n >> m;
	
	REP(i,n+1){
		if(i == 0)dp[0][i][1] = 1;
		else dp[0][i][0] = 1;
	}
	
	REP(i,m){
		REP(j,n+1){
			REP(k,2){
				if(dp[i][j][k]){
					if(j > 0){
						if(j == 1){
							seica_add(dp[i+1][j-1][1],dp[i][j][k]);
							seica_add(dp[i+1][j][1],dp[i][j][k]);
						}
						else{
							seica_add(dp[i+1][j-1][k],dp[i][j][k]);
							seica_add(dp[i+1][j][k],dp[i][j][k]);
						}
					}
					
					if(j < n){
						seica_add(dp[i+1][j+1][k],dp[i][j][k]);
						seica_add(dp[i+1][j][k],dp[i][j][k]);
					}
				}
			}
		}
	}
	
	ll ans = 0;
	
	REP(i,n+1)seica_add(ans,dp[m][i][1]);
	
	cout << ans << endl;
						
	
	return 0;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:48:81: error: cannot bind non-const lvalue reference of type 'll&' {aka 'long long int&'} to a value of type 'int'
   48 |                                                         seica_add(dp[i+1][j-1][1],dp[i][j][k]);
      |                                                                   ~~~~~~~~~~~~~~^
a.cc:26:20: note:   initializing argument 1 of 'void seica_add(ll&, ll&)'
   26 | void seica_add(ll &a,ll &b){
      |                ~~~~^
a.cc:49:79: error: cannot bind non-const lvalue reference of type 'll&' {aka 'long long int&'} to a value of type 'int'
   49 |                                                         seica_add(dp[i+1][j][1],dp[i][j][k]);
      |                                                                   ~~~~~~~~~~~~^
a.cc:26:20: note:   initializing argument 1 of 'void seica_add(ll&, ll&)'
   26 | void seica_add(ll &a,ll &b){
      |                ~~~~^
a.cc:52:81: error: cannot bind non-const lvalue reference of type 'll&' {aka 'long long int&'} to a value of type 'int'
   52 |                                                         seica_add(dp[i+1][j-1][k],dp[i][j][k]);
      |                                                                   ~~~~~~~~~~~~~~^
a.cc:26:20: note:   initializing argument 1 of 'void seica_add(ll&, ll&)'
   26 | void seica_add(ll &a,ll &b){
      |                ~~~~^
a.cc:53:79: error: cannot bind non-const lvalue reference of type 'll&' {aka 'long long int&'} to a value of type 'int'
   53 |                                                         seica_add(dp[i+1][j][k],dp[i][j][k]);
      |                                                                   ~~~~~~~~~~~~^
a.cc:26:20: note:   initializing argument 1 of 'void seica_add(ll&, ll&)'
   26 | void seica_add(ll &a,ll &b){
      |                ~~~~^
a.cc:58:73: error: cannot bind non-const lvalue reference of type 'll&' {aka 'long long int&'} to a value of type 'int'
   58 |                                                 seica_add(dp[i+1][j+1][k],dp[i][j][k]);
      |                                                           ~~~~~~~~~~~~~~^
a.cc:26:20: note:   initializing argument 1 of 'void seica_add(ll&, ll&)'
   26 | void seica_add(ll &a,ll &b){
      |                ~~~~^
a.cc:59:71: error: cannot bind non-const lvalue reference of type 'll&' {aka 'long long int&'} to a value of type 'int'
   59 |                                                 seica_add(dp[i+1][j][k],dp[i][j][k]);
      |                                                           ~~~~~~~~~~~~^
a.cc:26:20: note:   initializing argument 1 of 'void seica_add(ll&, ll&)'
   26 | void seica_add(ll &a,ll &b){
      |                ~~~~^
a.cc:68:43: error: cannot bind non-const lvalue reference of type 'll&' {aka 'long long int&'} to a value of type 'int'
   68 |         REP(i,n+1)seica_add(ans,dp[m][i][1]);
      |                                 ~~~~~~~~~~^
a.cc:26:26: note:   initializing argument 2 of 'void seica_add(ll&, ll&)'
   26 | void seica_add(ll &a,ll &b){
      |                      ~~~~^