using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace drugi_kvalifikacije
{
	class Program
	{
		//provera prijateljstva
		static bool prijatelj(long[] druzeljubivost, long poznanstvo1, long poznanstvo2)
		{
			bool prijatelj1 = (druzeljubivost[poznanstvo1 - 1] > 0 && druzeljubivost[poznanstvo2 - 1] > 0);
			if (prijatelj1) return false;
			return true;
		}
		static void Main(string[] args)
		{
			//unos
			string[] brojevi = Console.ReadLine().Split();
			int n = int.Parse(brojevi[0]);
			int m = int.Parse(brojevi[1]);
			long[] druzeljubivost= new long[n];
			long poznanstvo1 = 0;
			long poznanstvo2 = 0;
			long[] prijatelji = new long[n];
	        long[] neprijatelji = new long[n];
			long sreca = 0;
			for (long i = 0; i < n; i++)
			{
				druzeljubivost[i] = long.Parse(Console.ReadLine());	
			}
			//provera i odredjivanje broja prijatelja i neprijatelja
			for (long i = 0; i < m; i++)
			{
				string[] poznanstva = Console.ReadLine().Split( );
				poznanstvo1 = long.Parse(poznanstva[0]);
				poznanstvo2 = long.Parse(poznanstva[1]);
				if (prijatelj(druzeljubivost, poznanstvo1, poznanstvo2))
				{
					neprijatelji[poznanstvo1-1]++;
					neprijatelji[poznanstvo2-1]++;
				}
				else
				{
					prijatelji[poznanstvo1-1]++;
					prijatelji[poznanstvo2-1]++;
					
				}
			}
			//racunanje srece
			for(long i = 0; i < n; i++)
			{
				sreca = sreca + druzeljubivost[i] * (prijatelji[i] - neprijatelji[i]);
			}
			Console.WriteLine(sreca);
		}
	}
}