#include <bits/stdc++.h>
using namespace std;
inline void in(int &n) {
  n = 0;
  int ch = getchar();
  int sign = 1;
  while (ch < '0' || ch > '9') {
    if (ch == '-') sign = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    n = (n << 3) + (n << 1) + ch - '0', ch = getchar();
  }
  n = n * sign;
}
int a[200005];
int sum[2003];
int dp[2003];
int offer[2003];
int func(int pos, int k) {
  if (pos == 0) return 0;
  if (dp[pos] != -1) return dp[pos];
  int ans = 1e9;
  ans = min(ans, a[pos] + func(pos - 1, k));
  for (int i = 1; i <= pos; i++) {
    ans = min(ans, sum[pos] - sum[pos - (i - offer[i])] + func(pos - i, k));
  }
  dp[pos] = ans;
  return ans;
}
int main() {
  int n, m, k;
  in(n);
  in(m);
  in(k);
  for (int i = 1; i <= n; i++) {
    in(a[i]);
  }
  sort(a + 1, a + 1 + n);
  sum[0] = 0;
  for (int i = 1; i <= min(n, k); i++) {
    sum[i] = sum[i - 1] + a[i];
  }
  for (int i = 1; i <= m; i++) {
    int x, y;
    in(x);
    in(y);
    if (x > k) continue;
    offer[x] = max(offer[x], y);
  }
  for (int i = 1; i <= k; i++) {
    dp[i] = -1;
  }
  int ans = func(k, k);
  printf("%d\n", ans);
}
