#include <bits/stdc++.h>
using namespace std;
#define bn(a) __builtin_popcount(a)
#define U(i) (1 << i)
#define N 10
int ans, a, b, n, m, k, g[N][N], f[1 << N][1 << N];
int main() {
cin >> n >> m >> k;
while (m--) {
cin >> a >> b, a--, b--;
g[a][b] = g[b][a] = 1;
f[U(a) | U(b)][U(a) | U(b)] = 1;
}
for (int A = 0; A < U(n); A++)
for (int B = A; B > 0; B--, B &= A) {
if (bn(B) == k && bn(A) == n) ans += f[A][B];
for (int i = 0; i < n; i++)
if (A & U(i))
for (int B1 = B & ~U(i), v = B1 ? __builtin_ctz(B1) - 1 : 0; v >= 0; v--)
if (!(A & U(v)) && g[i][v])
f[A | U(v)][B1 | U(v)] += f[A][B];
}
cout << ans;
}