#include <iostream>
#include <vector>
using namespace std;
class Takmicar
{
private:
    int redni_broj;
    long long int druzeljubivost;
    vector<int>odnosi;
    int broj_odnosa;
    int prijatelji;
    int neprijatelji;
public:
    Takmicar(int rb)
    {
        redni_broj=rb;
        broj_odnosa=0;
        prijatelji=0;
    }
    void dodaj_druzeljubivost(long long int d)
    {
        druzeljubivost=d;
    }
    void dodaj_odnos(int p)
    {
        odnosi.push_back(p);
    }
    void povecaj_odnose()
    {
        broj_odnosa++;
    }
    void dodaj_prijatelja()
    {
        prijatelji++;
    }
    void dodaj_neprijatelja()
    {
        neprijatelji++;
    }
    long long int get_Druzeljubivost(){return druzeljubivost;}
    int get_BrojPrijatelja(){return prijatelji;}
    int get_BrojNeprijatelja(){return neprijatelji;}
};
int main(int argc, const char * argv[]) {
    int N, M;
    cin>>N>>M;
    long long int A[N];
    int X[M],Y[M];
    vector<Takmicar> takmicari;
    for (auto i =0 ; i < N; i ++)
    {
        Takmicar t(i);
        takmicari.push_back(t);
    }
    for (auto i = 0 ; i < N; i ++)
    {
        cin>>A[i];
        takmicari[i].dodaj_druzeljubivost(A[i]);
        
    }
    
    for (auto i = 0 ; i < M; i ++)
    {
        cin>>X[i]>>Y[i];
        takmicari[X[i]-1].dodaj_odnos(Y[i]-1);
        takmicari[Y[i]-1].dodaj_odnos(X[i]-1);
        takmicari[X[i]-1].povecaj_odnose();
        takmicari[Y[i]-1].povecaj_odnose();
    }
    int Tip_Odnosa[M];
    for (auto i = 0 ; i < M; i ++)
    {
        if (abs (X[i]-1)>abs(Y[i]-1))
        {
            if (A[X[i]-1]>=0)
            {
                Tip_Odnosa[i]=1;
                takmicari[X[i]-1].dodaj_prijatelja();
                takmicari[Y[i]-1].dodaj_prijatelja();
            }
            else
            {
                Tip_Odnosa[i]=-1;
                takmicari[X[i]-1].dodaj_neprijatelja();
                takmicari[Y[i]-1].dodaj_neprijatelja();
            }
        }
        else
        {
            if (A[Y[i]-1]>=0)
            {
                Tip_Odnosa[i]=1;
                takmicari[X[i]-1].dodaj_prijatelja();
                takmicari[Y[i]-1].dodaj_prijatelja();
            }
            else
            {
                Tip_Odnosa[i]=-1;
                takmicari[X[i]-1].dodaj_neprijatelja();
                takmicari[Y[i]-1].dodaj_neprijatelja();
            }
        }
    }
    long long int max_druzeljubivost=0;
    for (auto i = 0 ; i < N; i ++)
    {
        max_druzeljubivost+=takmicari[i].get_Druzeljubivost()*(takmicari[i].get_BrojPrijatelja()-takmicari[i].get_BrojNeprijatelja());
        
    }

    cout<<max_druzeljubivost<<endl;
    
    
    return 0;
}