#include <bits/stdc++.h>
using namespace std;
int n, m, t, e[10][10], dp[1024][1024];
int main() {
  scanf("%d%d%d", &n, &m, &t);
  for (int i = 0, x, y; i < m; i++) {
    scanf("%d%d", &x, &y), x--, y--;
    e[x][y] = e[y][x] = dp[1 << x | 1 << y][1 << x | 1 << y] = 1;
  }
  int mask = (1 << n) - 1;
  for (int s = 0; s <= mask; s++)
    for (int r = s; r; r = (r - 1) & s) {
      if (!dp[s][r]) continue;
      for (int i = s; i; i &= i - 1) {
        int x = __builtin_ctz(i);
        for (int j = mask ^ s; j; j &= j - 1) {
          int y = __builtin_ctz(j), o = (1 << y | r) ^ (1 << x & r);
          if (e[x][y] && 31 - __builtin_clz(o) == y)
            dp[1 << y | s][o] += dp[s][r];
        }
      }
    }
  int ans = 0;
  for (int s = 0; s <= mask; s++)
    if (__builtin_popcount(s) == t) ans += dp[mask][s];
  printf("%d\n", ans);
}
