func_code_string: #include <bits/stdc++.h>   using namespace std;   const int mod = 1e9 + 7;   long long qpow(long long x, long long k) {     return k == 0 ? 1                   : 1ll * qpow(1ll * x * x % mod, k >> 1) * (k & 1 ? x : 1) % mod;   }   const int md = 1e9 + 7;   const int Maxn = 5005;   int n, k;   long long dp[Maxn][Maxn];   int main() {     scanf( %d%d , &n, &k);     dp[0][0] = 1;     for (int i = 1; i <= k; i++) {       for (int j = 1; j <= i; j++) {         dp[i][j] = (dp[i - 1][j] * j + dp[i - 1][j - 1] * (n - j + 1)) % md;       }     }     long long ans = 0;     for (int i = 1; i <= min(n, k); i++) {       ans = (ans + dp[k][i] * qpow(2, n - i)) % md;     }     printf( %lld n , ans);     return 0;   }   