#include <iostream>
//#include <iomanip>
//#include <cmath>
#include <algorithm>
//#include <string>
#include <vector>
//#include <ctime>
//#include <cstdlib>
//#include <mycpp.h>

using namespace std;

vector<int> Neprijatelji(int Poz[][2],int m,int ind)
{
	vector<int> a;
	for(int i=0;i<m;i++)
	{
		if(ind==Poz[i][0])
		{
			a.push_back(Poz[i][1]);
		}
		else if(ind==Poz[i][1])
		{
			a.push_back(Poz[i][0]);
		}
	}
	return a;
}


int main()
{
	int n,m;
	cin>>n>>m;
	int Druz[n];
	bool poz=true;
	vector<int> neg;
	int brneg=0;
	for(int i=0;i<n;i++)
	{
		cin>>Druz[i];
		if(Druz[i]<0)
		{
			poz=false;
			neg.push_back(Druz[i]);
			brneg++;
		}
	}
	int Poznanika[n]={0};
	int Poznanici[m][2];
	for(int i=0;i<m;i++)
	{
		cin>>Poznanici[i][0]>>Poznanici[i][1];
		Poznanici[i][0]--;
		Poznanici[i][1]--;
		Poznanika[Poznanici[i][0]]++;
		Poznanika[Poznanici[i][1]]++;
	}
	if(poz)
	{
		int S=0;
		for(int i=0;i<n;i++)
			S+=(Druz[i]*Poznanika[i]);
		cout<<S;
	}
	else
	{
		int brP[n][2];
		for(int i=0;i<n;i++)
		{
			brP[i][0]=Poznanika[i];
			brP[i][1]=0;
		}
		for(int i=0;i<brneg;i++)
		{
			brP[neg[i]][0]=0;
			brP[neg[i]][0]=Poznanika[neg[i]];
			vector<int> a=Neprijatelji(Poznanici,m,neg[i]);
			for(int j=0;j<a.size();j++)
			{
				brP[a[j]][0]--;
				brP[a[j]][0]++;
			}
		}
		int S1=0;
		for(int i=0;i<n;i++)
			S1+=(Druz[i]*(brP[i][0]-brP[i][1]));
		int S2=0;
		for(int i=0;i<n;i++)
			S2+=(Druz[i]*Poznanika[i]);
		cout<<max(S1,S2);
	}
		
}