#include <bits/stdc++.h>
using namespace std;
int n, m, k, s[1200];
long long f[1200][1200];
bool a[12][12];
int count(int x) {
  int s = 0;
  while (x) {
    s += (x & 1);
    x >>= 1;
  }
  return s;
}
int main() {
  scanf("%d%d%d", &n, &m, &k);
  int x, y, z;
  for (int i = 1; i <= m; ++i) {
    scanf("%d%d", &x, &y);
    a[x][y] = a[y][x] = 1;
    z = (1 << (x - 1)) + (1 << (y - 1));
    f[z][z] = 2;
  }
  for (int i = 0; i <= (1 << n) - 1; ++i) s[i] = count(i);
  for (int i = 0; i <= (1 << n) - 1; ++i)
    for (int j = 0; j <= (1 << n) - 1; ++j)
      if (f[i][j]) {
        f[i][j] /= s[j];
        for (int x = 1; x <= n; ++x)
          if ((i >> (x - 1)) & 1)
            for (int y = 1; y <= n; ++y)
              if (a[x][y]) {
                if ((i >> (y - 1)) & 1) continue;
                if ((j >> (x - 1)) & 1)
                  f[i + (1 << (y - 1))][j + (1 << (y - 1)) - (1 << (x - 1))] +=
                      f[i][j];
                else
                  f[i + (1 << (y - 1))][j + (1 << (y - 1))] += f[i][j];
              }
      }
  long long ans = 0;
  for (int i = 0; i <= (1 << n) - 1; ++i)
    if (s[i] == k) ans += f[(1 << n) - 1][i];
  printf("%I64d\n", ans);
  return 0;
}
