#include <bits/stdc++.h>
using namespace std;
long long Mod = 1e9 + 7;
long long poww(long long a, long long b, long long mod) {
  long long res = 1;
  if (b < 0) b = (b % (mod - 1) + mod - 1) % (mod - 1);
  for (; b; b >>= 1, a = 1ll * a * a % mod)
    if (b & 1) res = 1ll * res * a % mod;
  return res;
}
void Max(long long& x, long long y) { x = max(x, y); }
void Min(long long& x, long long y) { x = min(x, y); }
long long Add(long long x, long long y) {
  x %= Mod;
  y %= Mod;
  return (x + y) % Mod;
}
long long Sub(long long x, long long y) {
  x %= Mod;
  y %= Mod;
  return (x - y + Mod) % Mod;
}
long long Mul(long long x, long long y) {
  x %= Mod;
  y %= Mod;
  return (x * y) % Mod;
}
const long long N = 300300, K = 17, Inf = 4e18;
long long n, m, Ans;
long long dp[N][2];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> m;
  if (n < m) swap(n, m);
  dp[1][0] = dp[1][1] = 1;
  dp[2][0] = dp[2][1] = 2;
  for (int i = 3; i <= n; i++) {
    dp[i][0] += dp[i - 1][1] + dp[i - 2][1];
    dp[i][0] %= Mod;
    dp[i][1] += dp[i - 1][0] + dp[i - 2][0];
    dp[i][1] %= Mod;
  }
  cout << Add(dp[n][0] + dp[n][1] - 1, dp[m][0] + dp[m][1] - 1) << '\n';
  return 0;
}
