#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
int l, r;
long long res;
long long _pow(int x, int y) {
  if (!y) return 1;
  long long res = _pow(x, y >> 1);
  res = res * res % MOD;
  if (y & 1) res = res * x % MOD;
  return res;
}
long long solve(int x) {
  if (!x) return 0;
  if (x == 1) return 4;
  if (x & 1) return (33 * _pow(3, x / 2 - 1) - 7) % MOD;
  return (19 * _pow(3, x / 2 - 1) - 7) % MOD;
}
long long calc(int len) {
  return (solve(len) + solve((len + 1) >> 1)) % MOD * _pow(2, MOD - 2) % MOD;
}
void execute() {
  res = calc(r) - calc(l - 1);
  if (res < 0) res += MOD;
}
int main() {
  cin >> l >> r;
  execute();
  printf("%I64d", res);
  return 0;
}
