#include <bits/stdc++.h>
using namespace std;
const long long mo = 1000000007;
int n, m;
long long power(int a, int b) {
  if (b == 0) return 1;
  long long ans = power(a, b / 2);
  ans *= ans;
  ans %= mo;
  if (b & 1) ans *= a;
  ans %= mo;
  return ans;
}
long long sum(int t) {
  if (t & 1) {
    long long ans = power(3, t / 2);
    ans *= 11;
    ans %= mo;
    ans -= 7;
    ans %= mo;
    while (ans < 0) ans += mo;
    return ans;
  } else {
    long long ans = power(3, t / 2 - 1);
    ans *= 19;
    ans %= mo;
    ans -= 7;
    ans %= mo;
    while (ans < 0) ans += mo;
    return ans;
  }
}
long long calc(int t) {
  if (t == 0) return 0;
  if (t == 1) return 4;
  long long ans = sum(t);
  ans += sum((t + 1) / 2);
  ans %= mo;
  while (ans < 0) ans += mo;
  ans *= 500000004;
  ans %= mo;
  return ans;
}
int main() {
  scanf("%d%d", &n, &m);
  cout << (calc(m) - calc(n - 1) + mo) % mo << endl;
  return 0;
}
