#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353;
const int maxn = 1 << 18 | 5;
int n, m;
int u[405], v[405];
long long dp[maxn];
int cnt[maxn];
bool mark[maxn];
void add(long long &x, long long y) {
  x += y;
  if (x >= mod) x -= mod;
  if (x < 0) x += mod;
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= m; i++) scanf("%d%d", &u[i], &v[i]);
  cnt[0] = -1;
  dp[0] = 1;
  for (int i = 1; i < 1 << n; i++) cnt[i] = -cnt[i & (i - 1)];
  for (int i = 1; i < 1 << n; i++)
    for (int j = 1; j <= m; j++)
      if ((((i) >> ((u[j]) - 1)) & 1) && (((i) >> ((v[j]) - 1)) & 1)) {
        mark[i] = 1;
        break;
      }
  for (int i = 1; i < 1 << n; i++)
    for (int j = i; j >= 1; j = (j - 1) & i)
      if (!mark[j]) add(dp[i], dp[i ^ j] * cnt[j]);
  printf("%lld\n", dp[(1 << n) - 1] * m % mod * 499122177 % mod);
  return 0;
}
