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

namespace ConsoleApplication1
{
    class Program
    {
        struct poznanstva
        {
            public int drz;
            public int pr;
            public int nepr;
        }
        static void Main(string[] args)
        {
            string[] s = Console.ReadLine().Split();
            int n, m, zbir = 0;
            n = int.Parse(s[0]);
            m = int.Parse(s[1]);
            poznanstva[] poz = new poznanstva[n];
            int[,] b = new int[m, 2];
            for (int i = 0; i < n; i++)
                poz[i].drz = int.Parse(Console.ReadLine());
            for (int i = 0; i < m; i++)
            {
                string[] g = Console.ReadLine().Split();
                for (int j = 0; j < 2; j++) b[i, j] = int.Parse(g[j]);
            }
            for (int i = 0; i < m; i++)
            {
                for(int j = 0; j < 1; j++)
                {
                    if (poz[b[i, j] - 1].drz > 0 && poz[b[i, j + 1] - 1].drz > 0)
                    {
                        poz[b[i, j] - 1].pr++;
                        poz[b[i, j + 1] - 1].pr++;
                    }
                    else if (poz[b[i, j] - 1].drz < 0 && poz[b[i, j + 1] - 1].drz < 0)
                    {
                        poz[b[i, j] - 1].nepr++;
                        poz[b[i, j + 1] - 1].nepr++;
                    }
                    else
                    {
                        if (Math.Abs(poz[b[i, j] - 1].drz) >= Math.Abs(poz[b[i, j + 1] - 1].drz))
                        {
                            if (poz[b[i, j] - 1].drz > 0)
                            {
                                poz[b[i, j] - 1].pr++;
                                poz[b[i, j + 1] - 1].pr++;
                            }
                            else
                            {
                                poz[b[i, j] - 1].nepr++;
                                poz[b[i, j + 1] - 1].nepr++;
                            }

                        }
                        else
                        {
                            if (poz[b[i, j + 1] - 1].drz > 0)
                            {
                                poz[b[i, j] - 1].pr++;
                                poz[b[i, j + 1] - 1].pr++;
                            }
                            else
                            {
                                poz[b[i, j] - 1].nepr++;
                                poz[b[i, j + 1] - 1].nepr++;
                            }
                        }


                    }

                }
            }
            for (int i = 0; i < n; i++)
            {
                zbir+= poz[i].drz * (poz[i].pr - poz[i].nepr);
            }
            Console.WriteLine(zbir);


        }
    }
}