#include <iostream>

using namespace std;

int main()
{
	int N, M;
	cin >> N >> M;
	int tak[N+1], poz[N+1], s = 0;

	for (int i = 1;i <= N;i++)
	{
		cin >> tak[i];
		poz[i] = 0;
	}
	for (int i = 0;i < M;i++)
	{
		int Xi, Yi;
		cin >> Xi >> Yi;
		if (tak[Xi] > 0 && tak[Yi] > 0)
		{
			poz[Xi] += 1;
			poz[Yi] += 1;
			s += tak[Xi] * poz[Xi];
			s += tak[Yi] * poz[Yi];
		}
		else if (tak[Xi] < 0 && tak[Yi] < 0)
		{
			poz[Xi] -= 1;
			poz[Yi] -= 1;
			s += tak[Xi] * poz[Xi];
			s += tak[Yi] * poz[Yi];
		}
		else if (tak[Xi] < 0 )
		{
			if ((tak[Xi] * (poz[Xi] - 1)) > (tak[Yi] * (poz[Yi] + 1)))
			{
				poz[Xi] -= 1;
				poz[Yi] -= 1;
				s += tak[Xi] * poz[Xi];
				s += tak[Yi] * poz[Yi];
			}
			else
			{
				poz[Xi] += 1;
				poz[Yi] += 1;
				s += tak[Xi] * poz[Xi];
				s += tak[Yi] * poz[Yi];
			}
			
		}
		else if (tak[Yi] < 0 )
		{
			if ((tak[Yi] * (poz[Yi] - 1)) > (tak[Xi] * (poz[Xi] + 1)))
			{
				poz[Xi] -= 1;
				poz[Yi] -= 1;
				s += tak[Xi] * poz[Xi];
				s += tak[Yi] * poz[Yi];
			}
			else
			{
				poz[Xi] += 1;
				poz[Yi] += 1;
				s += tak[Xi] * poz[Xi];
				s += tak[Yi] * poz[Yi];
			}
			
		}
		
	}
	cout << s;
	return 0;
}