#include <bits/stdc++.h>
using namespace std;
bool mapa[20][20];
long long F[1 << 20][20], res;
int main() {
  int n, m, x, y, k;
  scanf("%d%d", &n, &m);
  for (int i = 0; i < m; i++) {
    scanf("%d%d", &x, &y);
    x--;
    y--;
    mapa[x][y] = 1;
    mapa[y][x] = 1;
    (x < y) ? F[(1 << x) + (1 << y)][y] = 1 : F[(1 << x) + (1 << y)][x] = 1;
  }
  for (int i = 7; i < (1 << n); i++) {
    bool flag = true;
    for (int j = 0; j < n; j++) {
      if ((i & (1 << j)) && (F[i][j] == 0)) {
        if (flag) {
          k = j;
          flag = false;
          continue;
        }
        for (int q = k + 1; q < n; q++) {
          if ((i & (1 << q)) && (mapa[q][j])) {
            F[i][j] += F[i - (1 << j)][q];
          }
        }
        if (mapa[k][j]) res += F[i][j];
      }
    }
  }
  printf("%I64d", res / 2);
}
