using System;

namespace _2zadatak
{
    class Program
    {
        struct Ucenik
        {
            public int druzeljubivost;
            public int brojPoznanika;
        }
        static void Main(string[] args)
        {
            Console.WriteLine("Upiši broj ucenika na takmicenju, pa broj parova poznanika (u istom redu sa space razmakom)");
            string[] s = Console.ReadLine().Split(" ");
            int n = int.Parse(s[0]);
            int m = int.Parse(s[1]);
            Ucenik[] niz = new Ucenik[n];
            int ukupnaSreca1 = 0;
            int ukupnaSreca2 = 0;
            for (int i = 0; i < n; i++)
            {
                Console.WriteLine("Upiši druželjubivost " + (i + 1) + "-og ucenika");
                niz[i].druzeljubivost = int.Parse(Console.ReadLine());

            }
            for (int i = 0; i < m; i++)
            {
                Console.WriteLine("Upiši koji se ucenici poznaju");
                s = Console.ReadLine().Split(" ");
                int a = int.Parse(s[0]);
                int b = int.Parse(s[1]);
                niz[a - 1].brojPoznanika++;
                niz[b - 1].brojPoznanika++;
            }
            for (int i = 0; i < n; i++)
            {

                ukupnaSreca1 += niz[i].druzeljubivost * niz[i].brojPoznanika;
                ukupnaSreca2 += niz[i].druzeljubivost * niz[i].brojPoznanika * (-1);

            }
            if (ukupnaSreca1 > ukupnaSreca2)
            {
                Console.WriteLine("Najveca moguca ukupna sreca je " + ukupnaSreca1);
            }
            else
                Console.WriteLine("Najveca moguca ukupna sreca je " + ukupnaSreca2);
        }
    }
}