#include <bits/stdc++.h>
using namespace std;
int n, m, k, kk;
vector<int> g[10], e[10];
int cnt = 0;
bool used[10] = {}, vis[10] = {};
int usedCnt, visCnt;
long long cur;
int st;
int pc[1024];
void go(int v) {
  vis[v] = true, ++visCnt;
  vector<int> &f = e[v];
  int sz = 0;
  for (int x : g[v])
    if (!used[x]) {
      f[sz++] = x;
    }
  for (int mask = 0; mask < (int)(1 << sz); ++mask) {
    int pcm = pc[mask];
    for (int i = 0; i < (int)(sz); ++i)
      if (mask & (1 << i)) {
        used[f[i]] = true;
      }
    usedCnt += pcm;
    int pos = 0;
    while (pos < n && (!used[pos] || vis[pos])) ++pos;
    if (pos != n) {
      go(pos);
    } else {
      if (usedCnt == n) ++cur;
    }
    for (int i = 0; i < (int)(sz); ++i)
      if (mask & (1 << i)) {
        used[f[i]] = false;
      }
    usedCnt -= pcm;
  }
  vis[v] = false, --visCnt;
}
long long ans[15], c[15][15];
int main() {
  for (int i = 0; i < (int)(1024); ++i) pc[i] = __builtin_popcount(i);
  scanf("%d%d%d", &n, &m, &kk);
  for (int i = 0; i < (int)(m); ++i) {
    int from, to;
    scanf("%d%d", &from, &to), --from, --to;
    g[from].push_back(to);
    g[to].push_back(from);
  }
  for (int i = 0; i < (int)(n); ++i) e[i].resize(g[i].size());
  for (int i = 0; i < (int)(15); ++i) c[0][i] = 0;
  c[0][0] = 1;
  for (int i = 1; i < 15; ++i) {
    c[i][0] = 1;
    for (int j = 1; j < 15; ++j) {
      c[i][j] = c[i - 1][j] + c[i - 1][j - 1];
    }
  }
  for (int k = n - 1; k >= kk; --k) {
    for (int mask = 0; mask < (int)(1 << n); ++mask)
      if (pc[mask] == k) {
        for (int i = 0; i < (int)(n); ++i)
          vis[i] = used[i] = (mask & (1 << i)) > 0;
        st = 0;
        while (used[st]) ++st;
        if (st == n) break;
        usedCnt = k + 1;
        visCnt = k;
        used[st] = true;
        cur = 0;
        go(st);
        for (int i = 0; i < (int)(n); ++i)
          if (mask & (1 << i)) {
            int mul = 0;
            for (int to : g[i])
              if (!(mask & (1 << to))) {
                ++mul;
              }
            cur *= mul;
          }
        ans[k] += cur;
      }
    for (int x = n - 1; x > k; --x) {
      ans[k] -= ans[x] * c[x][k];
    }
  }
  printf("%d\n", (int)ans[kk]);
  return 0;
}
