#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
long long dp[1 << 20][20] = {};
int main() {
  int n, m;
  scanf("%d %d", &n, &m);
  ;
  int a[20][20] = {};
  for (int i = 0; i < m; ++i) {
    int x, y;
    scanf("%d %d", &x, &y);
    ;
    x--;
    y--;
    a[x][y] = a[y][x] = 1;
  }
  for (int i = 0; i < n; i++) {
    dp[1 << i][i] = 1;
  }
  long long ans = 0;
  for (int i = 1; i < (1 << n); i++) {
    for (int j = 0; j < n; j++) {
      if (i & (1 << j)) {
        for (int k = j; k < n; k++) {
          for (int s = j + 1; s < n; s++) {
            if (i & (1 << k) && !(i & (1 << s)) && a[k][s]) {
              dp[i | (1 << s)][s] += dp[i][k];
              if (k != j && a[s][j]) {
                ans += dp[i][k];
              }
            }
          }
        }
        break;
      }
    }
  }
  cout << ans / 2;
}
