#include <bits/stdc++.h>
int n, m, k, u, v, c, f[1030][1030], a[20][20], ans;
int main() {
  scanf("%d%d%d", &n, &m, &k);
  for (int i = 0; i < m; i++)
    scanf("%d%d", &u, &v), --u, --v,
        a[u][v] = a[v][u] = 1,
        f[(1 << (u)) | (1 << (v))][(1 << (u)) | (1 << (v))] = 1;
  for (int i = 0; i < (1 << (n)); i++)
    for (int j = 0; j < (1 << (n)); j++)
      if ((i & j) == j && f[i][j])
        for (int u = 0; u < n; u++)
          for (int v = 0; v < n; v++)
            if ((i & (1 << (u))) && (~i & (1 << (v))) && a[u][v]) {
              c = (j & ~(1 << (u))) | (1 << (v));
              if (!(c >> (v + 1))) f[i | (1 << (v))][c] += f[i][j];
            }
  ans = 0;
  for (int i = 0; i < (1 << (n)); i++)
    ans += (__builtin_popcount(i) == k) * f[(1 << (n)) - 1][i];
  printf("%d\n", ans);
}
