#include <iostream>
#include <cmath>

using namespace std;

typedef struct {
    int pr;
    int nep;
    int druzelj;

}takm;
int main() 
{
    long int n, m, uksr = 0, a, b;
    
    cin >> n >> m;

    takm t[n+1];
            
    for(int i = 1; i <= n; i++) 
    {
        cin >> t[i].druzelj; 
        t[i].pr = 0;
        t[i].nep = 0;
    }
    
    for(int i = 1; i <= m; i++)
    {
        cin >> a;
        cin >> b;
        
        if(t[a].druzelj >= 0 && t[b].druzelj >= 0)
        {
            t[a].pr++;
            t[b].pr++;
        }
        else if(t[a].druzelj < 0 && t[b].druzelj < 0)
        {
            t[a].nep++;
            t[b].nep++;
        }
        else 
        {
            if(abs(t[a].druzelj) >= abs(t[b].druzelj))
            {
                if(t[a].druzelj >= 0)
                {
                    t[a].pr++;
                    t[b].pr++;
                }
                else
                {
                    t[a].nep++;
                    t[b].nep++;
                }
            }
            else
            {
                if(t[b].druzelj >= 0)
                {
                    t[a].pr++;
                    t[b].pr++;
                }
                else
                {
                    t[a].nep++;
                    t[b].nep++;
                }
            }
        }
    }
    
    for(int i = 1; i <= n; i++)
    {
        uksr+= t[i].druzelj*(t[i].pr - t[i].nep);
    }
    
    cout << uksr << endl;

    return 0;
}