func_code_string: #include <bits/stdc++.h>   using namespace std;   long long int mod = 1e9 + 7;   long long int mul(long long int x, long long int y) {     return (x * 1ll * y) % mod;   }   long long int add(long long int x, long long int y) {     x += y;     while (x >= mod) x -= mod;     while (x < 0) x += mod;     return x;   }   long long int dp[200005][3];   long long int a, b, c;   long long int n, l, r;   long long int fun(int i, int j) {     if (i == n) {       if (j == 0)         return 1;       else         return 0;     }     if (dp[i][j] != -1) return dp[i][j];     dp[i][j] = add(         mul(a, fun(i + 1, (j) % 3)),         add(mul(b, fun(i + 1, (j + 1) % 3)), mul(c, fun(i + 1, (j + 2) % 3))));     return dp[i][j];   }   int main() {     std::ios::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     ;     cin >> n >> l >> r;     long long int x = (l - 1 + 2) / 3;     long long int y = (r - 1) / 3;     b = y - x + 1;     x = (l - 2 + 2) / 3;     y = (r - 2) / 3;     c = y - x + 1;     x = (l + 2) / 3;     y = (r) / 3;     a = y - x + 1;     if (l == 1 && r == 1) {       a = 0, b = 1, c = 0;     }     memset(dp, -1, sizeof(dp));     long long int ans = 0;     ans = add(ans, mul(a, fun(1, 0)));     ans = add(ans, mul(b, fun(1, 1)));     ans = add(ans, mul(c, fun(1, 2)));     cout << ans << endl;   }   