#include <bits/stdc++.h>
using namespace std;
const int INF = INT_MAX >> 1;
vector<int> arr;
vector<pair<int, int> > offers;
vector<int> dp;
int main() {
  int n, m, k;
  cin >> n >> m >> k;
  arr.resize(n + 1);
  arr[0] = 0;
  for (int i = 1; i <= n; ++i) scanf("%d", &arr[i]);
  sort(arr.begin(), arr.end());
  for (int i = 1; i <= n; ++i) arr[i] += arr[i - 1];
  offers.resize(m + 1);
  offers[0] = {1, 0};
  for (int i = 1; i <= m; ++i)
    scanf("%d %d", &offers[i].first, &offers[i].second);
  dp.resize(k + 1, INF);
  dp[0] = 0;
  for (int i = 0; i != k; ++i) {
    for (pair<int, int> offer : offers) {
      if (offer.first + i > k) continue;
      dp[i + offer.first] =
          min(dp[i + offer.first],
              dp[i] + arr[i + offer.first] - arr[i + offer.second]);
    }
  }
  cout << dp[k] << endl;
  return 0;
}
