#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int mod = (int)1e9 + 7;
const int MAX = 1e6;
ll dpcol[MAX], dprow[MAX];
void add(ll &a, const ll b) {
  a += b;
  if (a >= mod) {
    a -= mod;
  }
}
void subtract(ll &a, const ll &b) {
  a -= b;
  if (a < 0) {
    a += mod;
  }
}
int main() {
  dpcol[0] = 2;
  dprow[0] = 0;
  long long n, m;
  cin >> n >> m;
  for (ll i = 1; i <= n + 10; i++) {
    if (i >= 1) {
      add(dpcol[i], dpcol[i - 1]);
    }
    if (i >= 2) {
      add(dpcol[i], dpcol[i - 2]);
    }
  }
  dprow[0] = dpcol[n];
  dprow[1] = dpcol[n];
  dpcol[0] = 0;
  for (int i = 2; i <= m; i++) {
    add(dprow[i], dprow[i - 1]);
    add(dprow[i], dprow[i - 2]);
    subtract(dprow[i], dpcol[n - 1]);
  }
  cout << dprow[m] << '\n';
}
