#include <iostream>
#include <vector>
#define ll_int long long int
using namespace std;

int sreca_f(int znak, ll_int sreca, ll_int n, vector<ll_int>& d, vector<ll_int>& x, vector<ll_int>& y) {
	ll_int sreca_max, m = n;
	int i = 0;
	while (n-- > 0) {
		sreca = 0;
		sreca += ((d[x[m - 1] - 1] + d[y[m - 1] - 1]) * znak) + sreca_f(znak, sreca, (ll_int)m / 2, d, x, y);
		znak = -znak;
		if (i == 0)sreca_max = sreca;
		else if (sreca > sreca_max)sreca_max = sreca;
		i++;
	}
	if (i == 0)return 0;
	return sreca_max;
}

int main() {
	ll_int n, m, sreca, temp_x, temp_y;
	cin >> n >> m;
	vector<ll_int>d(n);
	vector<ll_int>x(m);
	vector<ll_int>y(m);
	for (int i = 0; i < n; i++) {
		cin >> d[i];
	}
	for (int i = 0; i < m; i++) {
		cin >> x[i] >> y[i];
	}
	sreca = sreca_f(1, 0, m, d, x, y);
	cout << sreca;
	return 0;
}