#include <bits/stdc++.h>

using namespace std;

struct b
{
public:
    long long a;
    long long i;
    long long prijatelji;
};
bool se1(b l,b r)
{
    if(abs(l.a*l.i)>(r.a*r.i)) return true;
    return false;
}
bool se2(pair<int,int> l,pair<int,int> r)
{
    if(l.first>r.first) return true;
    if(l.first==r.first) if(l.second>r.second) return true;
    return false;
}
int main()
{
    ios::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL);
    int n,m;
    cin>>n>>m;
    b x[n];
    for(int i=0;i<n;i++)
    {
        cin>>x[i].a;
        x[i].i=0;
        x[i].prijatelji=0;
    }
    pair<int,int> p[m];
    bool third[m];
    for(int i=0;i<m;i++)
    {
        cin>>p[i].first;
        cin>>p[i].second;
        x[p[i].first-1].i++;
        x[p[i].second-1].i++;
        third[i]=true;
    }
    long long u=0;
    sort(x,x+n,se1);
    sort(p,p+m,se2);
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            if(i==p[j].first-1)
            if(third[j])
            {
                if(x[i].a>0){x[i].prijatelji++;x[p[j].second-1].prijatelji++;}
                else {x[i].prijatelji--;x[p[j].second-1].prijatelji--;}
                third[j]=false;
            }
        }
        for(int j=0;j<m;j++)
        {
            if(i==p[j].second-1)
            if(third[j])
            {
                if(x[i].a>0){x[i].prijatelji++;x[p[j].first-1].prijatelji++;}
                else{x[i].prijatelji--;x[p[j].first-1].prijatelji--;}
                third[j]=false;
            }
        }
    }
    for(int i=0;i<n;i++)
    {
        u+=x[i].a*x[i].prijatelji;
    }
    cout<<u;
}