MOD = 998244353 N,M,K = map(int,input().split()) P = {} for _ in range(K): x,y = map(int,input().split()) if x not in P: P[x] = [] if y not in P: P[y] = [] P[y].append(x) V = list(P.keys()) L = len(V) indV = {V[i]:i for i in range(L)} Pbin = {} for v in P: Pbin[v] = 0 for u in P[v]: Pbin[v] |= 1<>k & 1) and (Pbin[V[k]] & i) != Pbin[V[k]]: flag = False break if not flag:continue nextV = 0 for k in range(L): if (ic>>k & 1) and Pbin[V[k]] & i == Pbin[V[k]]: nextV |= 1<>k & 1: dpf[i|1<>k & 1) and (Pbin[V[k]] & i) != Pbin[V[k]]: flag = False break if not flag:continue nextV = 0 for k in range(L): if (ic>>k & 1) and Pbin[V[k]] & i == Pbin[V[k]]: if i==0 and V[k]<=M:continue else: nextV |= 1<>k & 1: dpg[i|1<n:return 0 return A[n]*B[k]*B[n-k]%MOD ans = (comb(N-1,L)*f*(N-L-(M-J))*A[N-L-1])%MOD+(comb(N-1,L-1)*g*A[N-L])%MOD ans = ans%MOD print(ans)