func_code_string: #include <bits/stdc++.h>   bool map[21][21];   int i, j, k, n, m, lim, tot, l, t, c[1 << 10];   long long f[1 << 10][1 << 10], ans;   int main() {     scanf( %d%d%d , &n, &m, &lim);     tot = 1 << n;     memset(map, 0, sizeof(map));     memset(f, 0, sizeof(f));     for (i = 0; i < tot; i++)       for (j = i, c[i] = 0; j; j >>= 1) c[i] += j & 1;     for (i = 1; i <= m; i++) {       scanf( %d%d , &j, &k);       map[j][k] = map[k][j] = 1;       f[(1 << (j - 1)) + (1 << (k - 1))][(1 << (j - 1)) + (1 << (k - 1))] = 1;     }     for (i = 1; i < tot; i++)       for (j = 1; j < i; j++) {         if (c[i] <= c[j]) continue;         for (k = j, l = 1; k; k >>= 1, l++) {           if (!(k & 1)) continue;           for (t = 1; t <= n; t++)             if (map[t][l] && (i >> (t - 1)) % 2 && (j >> (t - 1)) % 2 == 0)               f[i][j] +=                   f[i - (1 << (l - 1))][j - (1 << (l - 1))] +                   f[i - (1 << (l - 1))][j - (1 << (l - 1)) + (1 << (t - 1))];         }         f[i][j] /= c[j];       }     for (i = 1; i < tot; i++) {       if (c[i] == lim) ans += f[tot - 1][i];     }     printf( %I64d n , ans);   }   