#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
int l, r;
long long ret;
void init() { scanf("%d%d", &l, &r); }
long long Pow(int x, int y) {
  if (!y) return 1;
  long long ret = Pow(x, y >> 1);
  ret = ret * ret % MOD;
  if (y & 1) ret = ret * x % MOD;
  return ret;
}
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 work() {
  ret = calc(r) - calc(l - 1);
  if (ret < 0) ret += MOD;
}
void print() { printf("%I64d\n", ret); }
int main() {
  init();
  work();
  print();
  return 0;
}
