#include <bits/stdc++.h>
using namespace std;
int n, m, k;
int g[25][25];
int dp[1055][1055];
int ans;
int main() {
  std::ios::sync_with_stdio(false);
  cin >> n >> m >> k;
  int u, v, x;
  for (int i = 0; i < m; i++) {
    cin >> u >> v;
    u--, v--;
    x = (1 << u) | (1 << v);
    g[u][v] = g[v][u] = 1;
    dp[x][x] = 1;
  }
  for (int i = 0; i < 1 << n; i++) {
    for (int j = 0; j < 1 << n; j++) {
      if (i & j == j && dp[i][j]) {
        for (int k = 0; k < n; k++) {
          for (int w = 0; w < n; w++) {
            if (g[k][w] && (i & (1 << k)) && (~i & (1 << w)) &&
                (!(((j & (~(1 << k))) | (1 << w)) >> (w + 1)))) {
              dp[i | (1 << w)][(j & (~(1 << k))) | ((1 << w))] += dp[i][j];
            }
          }
        }
      }
    }
  }
  int nn = (1 << n) - 1;
  for (int i = 0; i < 1 << n; i++) {
    if (__builtin_popcount(i) == k) {
      ans += dp[nn][i];
    }
  }
  cout << ans << endl;
}
