#include <bits/stdc++.h>
using namespace std;
const int maxn = 15, maxm = 1055;
int con[maxn][maxn], f[maxm][maxm];
int n, m, k, ans;
int main() {
  int x, y, a, b, t;
  scanf("%d%d%d", &n, &m, &k);
  while (m--) {
    scanf("%d%d", &a, &b);
    --a;
    --b;
    con[a][b] = con[b][a] = 1;
    f[(1 << a) | (1 << b)][(1 << a) | (1 << b)] = 1;
  }
  for (x = 0; x < 1 << n; ++x)
    for (y = x; y; y = (y - 1) & x)
      if (f[x][y])
        for (a = 0; a < n; ++a)
          for (b = 0; b < n; ++b)
            if (((x >> a) & 1) && ((~x >> b) & 1) && con[a][b]) {
              t = (y & ~(1 << a)) | (1 << b);
              if (!(t >> (b + 1))) f[x | (1 << b)][t] += f[x][y];
            }
  for (x = 0; x < 1 << n; ++x)
    if (__builtin_popcount(x) == k) ans += f[(1 << n) - 1][x];
  printf("%d\n", ans);
  return 0;
}
