#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ii pair<int, int>
#define F first
#define S second
const int N = 20, M = 1e9+7, inf = 1e18;
int n, m, dp[2005][15][2005];
signed main()
{
    //freopen("main.inp", "r", stdin);
    //freopen("main.out", "w", stdout);
    ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    cin >> n >> m;
    dp[0][n][0] = 1;
    for(int i = 1; i <= m; i++) {
        for(int msk = 0; msk < (1 << n); msk++) dp[i][0][msk] = dp[i-1][n][msk];
        for(int j = 1; j <= n; j++) {
            for(int msk = 0; msk < (1 << n); msk++) {
                bool use = (1 << (j-1)) & msk;
                if(use) dp[i][j][msk] += dp[i][j-1][msk-(1 << (j-1))];
                else {
                    dp[i][j][msk] += dp[i][j-1][msk+(1<<(j-1))];
                    if(j > 1 && !((1 << (j-2)) & msk)) dp[i][j][msk] += dp[i][j-2][msk];
                }
                dp[i][j][msk] %= M;
            }
        }
    }
    cout << dp[m][n][0];
    return 0;
}