func_code_string: #include <bits/stdc++.h>   using namespace std;   const int INF = 1e9 + 7;   const int MOD = 1e9 + 7;   const int MAXN = 1e6 + 3;   long long gcd(long long a, long long b) {     if (b == 0)       return a;     else       return gcd(b, a % b);   }   long long power(long long x, long long y) {     long long res = 1;     while (y > 0) {       if (y & 1) res = res * x;       y = y >> 1;       x = x * x;     }     return res;   }   long long n;   const int maxn = 1e3 + 3;   long long dp1[2 * maxn][2 * maxn];   long long dp2[2 * maxn][2 * maxn];   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cin >> n;     n *= 2;     dp1[0][0] = 0ll;     dp2[0][0] = 1ll;     for (long long i = 1; i <= n; i++) {       for (long long j = 0; j <= i; j++) {         if (j == 0) {           dp2[i][j] = (1 + dp1[i - 1][j + 1]) % MOD;           dp1[i][j] = max(dp1[i - 1][j + 1], dp2[i - 1][j + 1]);         } else if (j == i) {           dp2[i][j] = (1 + dp1[i - 1][j - 1]) % MOD;           dp1[i][j] = max(dp1[i - 1][j - 1], dp2[i - 1][j - 1]);         } else {           dp2[i][j] = (1 + dp1[i - 1][j - 1] + dp1[i - 1][j + 1]) % MOD;           dp1[i][j] = max(dp1[i - 1][j - 1] + dp2[i - 1][j + 1],                           dp1[i - 1][j + 1] + dp2[i - 1][j - 1]) %                       MOD;         }       }     }     cout << dp1[n][0] <<   n ;     return 0;   }   