← Home
#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;
}