#include <iostream>
using namespace std;
bool generisiSledecuKombinaciju(int M, int kombinacija[])
int main()
{
    const int MAX_TAKMICARI=10000;
    int N,M;
    int Ai[MAX_TAKMICARI];
    int parovi[MAX_TAKMICARI][2];
    cin>>N>>M;
    for (int i=0;i<N;i++)
    {
        cin>>Ai[i];
    }
    for (int i=0;i<M;i++)
    {
        int X,Y;
        cin>>X>>Y;
        parovi[i][0]=X;
        parovi[i][1]=Y;
    }
    int kombinacija[MAX_TAKMICARI];
    fill(kombinacija, kombinacija+M,0);
    int maxSreca=0;
    int takmicarPrijateljNeprijatelj[MAX_TAKMICARI][2];
    do{
        for (int i=0;i<N;i++)
        {
            takmicarPrijateljNeprijatelj[i][0]=0;
            takmicarPrijateljNeprijatelj[i][1]=0;
        }
        for (int i=0;i<M;i++)
        {
            int Xi=parovi[i][0];
            int Yi=parovi[i][1];
            int prijatelj=kombinacija[i]==0;
            if (prijatelj)
            {
                takmicarPrijateljNeprijatelj[Xi-1][0]++;
                takmicarPrijateljNeprijatelj[Yi-1][0]++;
            }
            else
            {
                takmicarPrijateljNeprijatelj[Xi-1][1]++;
                takmicarPrijateljNeprijatelj[Yi-1][1]++;
            }
        }
        int sreca=0;
        for (int i=0;i<N;i++)
        {
            int srecatakmicara=
            Ai[i]*(takmicarPrijateljNeprijatelj[i][0]-takmicarPrijateljNeprijatelj[i][1]);
        sreca+=srecatakmicara;
        }
        if (sreca>maxSreca)
        {
            maxSreca=sreca;
        }
    } while (generisiSledecuKombinaciju(M, kombinacija));
    cout<<maxSreca;
}