def Popuni(M):
    matrica11 = []
    for x in range(pow(2,M)):
        matrica11.append([])
    counter = 0
    for x in matrica11:
        counter11 = 0
        while counter11<M:
            x.append(0)
            counter11+=1
    while counter<M:
        brojac = 1
        broj = 1
        pom = 0
        broj2 = 0
        for x in matrica11:
            x[counter] = broj
            if brojac%(pow(2,M)/pow(2,counter+1)) == 0:
                pom = broj
                broj = broj2
                broj2 = pom
            brojac+=1
        counter+=1
    for x in matrica11:
        #print(x)
        pass
    return matrica11

def Funckija(M,listadr,listaparova):
    listabratino = []
    listakomb = Popuni(M)
    for x in listakomb:
        brojprijateljstava = []
        counter = 0
        for n in range(len(listadr)):
            brojprijateljstava.append(int(0))
        while counter < len(x):
            prvi = listaparova[counter][0]
            drugi = listaparova[counter][1]

            if x[counter] == 1:
                brojprijateljstava[prvi-1]+=1
                brojprijateljstava[drugi-1]+=1
            else:
                brojprijateljstava[prvi - 1] -= 1
                brojprijateljstava[drugi - 1] -= 1
            counter+=1
        sreca = 0
        brojac = 0
        max = 0
        for a in range(len(listadr)):
            sreca += listadr[a]*brojprijateljstava[a]
        listabratino.append(sreca)
    return listabratino

s = input()
N = int(s.split(" ")[0])
M = int(s.split(" ")[1])
listatakm = []
listaprijateljstva = []
for x in range(N):
    listatakm.append(int(input()))
for x in range(N):
    listaprijateljstva.append(0)
listaparova = []
for x in range(M):
    t = input()
    prvi = int(t.split(" ")[0])
    drugi = int(t.split(" ")[1])
    listarandom = [prvi,drugi]
    listaparova.append(listarandom)
norma= Funckija(M,listatakm,listaparova)
print(max(norma))