func_code_string: #include <bits/stdc++.h>   using namespace std;   const int mx = 110, Mod = 1e6 + 3;   int C, W, H;   struct Matrix {     int val[mx][mx];     int n;     Matrix(int _n = mx, int _base = 0) {       n = _n;       for (int i = 0; i < n; i++)         for (int j = 0; j < n; j++) val[i][j] = (i == j ? _base : 0);     }     int* operator[](int x) { return val[x]; }   };   Matrix operator*(Matrix A, Matrix B) {     Matrix res(A.n);     for (int i = 0; i < res.n; i++)       for (int j = 0; j < res.n; j++)         for (int k = 0; k < res.n; k++)           res[i][k] = (0LL + res[i][k] + 1LL * A[i][j] * B[j][k]) % Mod;     return res;   }   Matrix operator^(Matrix A, long long int B) {     Matrix res(A.n, 1);     while (B) {       if (B & 1) res = res * A;       A = A * A;       B >>= 1;     }     return res;   }   int main() {     scanf( %d%d%d , &C, &W, &H);     Matrix res(W + 1);     for (int i = 0; i <= W; i++) res[0][i] = 1, res[i + 1][i] = H;     res = res ^ C;     int ans = 0;     for (int i = 0; i <= W; i++) ans = (0LL + ans + res[i][0]) % Mod;     printf( %d n , ans);     return 0;   }   