#include <bits/stdc++.h>
using namespace std;
int n, m;
int nei[25][25];
long long dp[1 << 20][25];
long long ans;
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 0; i < m; ++i) {
    int a, b;
    scanf("%d%d", &a, &b);
    a--;
    b--;
    nei[a][b] = nei[b][a] = 1;
  }
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < (1 << i); ++j) {
      for (int k = 0; k <= i; ++k) {
        dp[j][k] = 0;
      }
    }
    dp[0][i] = 1;
    for (int j = 0; j < (1 << i); ++j) {
      for (int k = 0; k <= i; ++k) {
        if (dp[j][k]) {
          ans += dp[j][k] * nei[k][i];
          for (int l = 0; l < i; ++l) {
            if (nei[k][l] && !((j >> l) & 1)) {
              dp[j | (1 << l)][l] += dp[j][k];
            }
          }
        }
      }
    }
  }
  printf("%lld\n", (ans - m) / 2);
  return 0;
}
