n,m = map(int,input().split()) A = list(map(int,input().split())) ans = 1 mod = 998244353 e = [[] for i in range(n)] for _ in range(m): u,v = [int(x)-1 for x in input().split()] e[u].append(v) e[v].append(u) vis = [0]*n for i in range(n): if vis[i]: continue nums = 0 q = [i] vis[i] = 1 size = 0 while q: now = q.pop() nums += A[now] size += 1 for nex in e[now]: if vis[nex]: continue vis[nex] = 1 q.append(nex) ans *= pow(nums,size,mod) ans %= mod print(ans)