func_code_string: #include <bits/stdc++.h>   using namespace std;   long long fastModPow(long long a, long long n, long long mod) {     if (mod == 1) return 0;     if (n == 1) return a % mod;     long long res = fastModPow(a, n / 2, mod);     res = res * res % mod;     if (n & 1) res = res * a % mod;     return res;   }   long long fastMaxPow(long long a, long long n, long long mx) {     if (n == 1) return min(a, mx);     long long res = fastMaxPow(a, n / 2, mx);     res = min(res * res, mx);     if (n & 1) res = min(res * a, mx);     return res;   }   int main() {     ios_base::sync_with_stdio(false);     int n, m;     cin >> n >> m;     long long mod = 1000000009;     long long m1 = fastMaxPow(2, m, 100001);     if (n >= m1) {       cout << 0;       return 0;     }     long long mult = fastModPow(2, m, mod);     long long res = 1;     for (int i = 1; i <= n; i++) {       mult--;       if (mult <= 0) mult += mod;       res = res * mult % mod;     }     cout << res;   }   