#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
int n, m;
int dp[100055][2][2];
inline void add(int &x, int y) {
  x += y;
  if (x >= MOD) {
    x -= MOD;
  }
}
int main() {
  cin >> n >> m;
  if (n > m) swap(n, m);
  dp[1][0][1] = 1;
  dp[1][1][0] = 1;
  for (int i = 2; i <= m; i++) {
    for (int p = 0; p < 2; p++) {
      for (int q = 0; q < 2; q++) {
        if (!(p == q && p == 0)) {
          add(dp[i][p][q], dp[i - 1][0][p]);
        }
        if (!(p == q && p == 1)) {
          add(dp[i][p][q], dp[i - 1][1][p]);
        }
      }
    }
  }
  int tot = 0;
  for (int p = 0; p < 2; p++) {
    for (int q = 0; q < 2; q++) {
      add(tot, dp[m][p][q]);
    }
  }
  if (n > 1) {
    int p = 1;
    for (int i = 0; i < n - 2; i++) {
      p = (p + p) % MOD;
    }
    add(tot, 2 * p % MOD);
  }
  cout << tot;
  return 0;
}
