#include <bits/stdc++.h>
using namespace std;
ifstream in("test12.in");
ofstream out("test12.out");
long long mat[3][200005], m[3];
int main() {
  long long n, l, r, i, j, k, temp, order[9] = {0, 2, 1, 1, 0, 2, 2, 1, 0};
  cin >> n >> l >> r;
  for (i = 0; i <= 2; i++) m[(l + i) % 3] = (r + 3 - l - i) / 3;
  for (i = 1; i <= n; i++) {
    for (j = 0; j <= 2; j++) {
      if (i == 1)
        mat[j][i] = m[j];
      else {
        for (k = 0; k <= 2; k++) {
          mat[j][i] += mat[k][i - 1] * m[order[j * 3 + k]];
        }
      }
      mat[j][i] %= 1000000007;
    }
  }
  cout << mat[0][n];
  return 0;
}
