#include<bits/stdc++.h>
using namespace std;
const int MAXN = 1e4 + 5;
const int INF = 1e9;
int m, n;
int p[MAXN];
int c[505];
int e[505];
int pre[MAXN];
int f[505][MAXN];
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> m >> n;
for (int i = 1; i <= m; i++)
{
cin >> p[i];
}
for (int i = 1; i <= n; i++)
{
cin >> c[i] >> e[i];
}
sort(p + 1, p + m + 1, greater<int>());
for (int i = 1; i <= m; i++)
{
pre[i] = pre[i - 1] + p[i];
}
for (int j = 0; j <= m; j++)
{
f[0][j] = INF;
}
f[0][0] = 0;
for (int i = 1; i <= n; i++)
{
for (int j = 0; j <= m; j++)
{
f[i][j] = f[i-1][j];
if (j >= c[i])
{
f[i][j] = min(f[i][j], f[i-1][j - c[i]] + e[i]);
}
else
{
f[i][j] = min(f[i][j], e[i]);
}
}
}
int ans = 0;
for (int i = 1; i <= m; i++)
{
if (f[n][i] < INF)
{
ans = max(ans, pre[i] - f[n][i]);
}
}
cout << ans;
}