#include <bits/stdc++.h>
using namespace std;
long long n, m, k, a[200010], sum[200010];
pair<long long, long long> b[200010];
bool use[200010];
long long dp[200010];
long long fn(long long pos) {
  if (pos > k) return 0;
  if (use[pos]) return dp[pos];
  use[pos] = true;
  long long var = -1;
  for (long long i = 0; i < m; i++) {
    if (pos + b[i].first - 1 > k) continue;
    if (var == -1)
      var = sum[pos + b[i].first - 1] - sum[pos + b[i].second - 1] +
            fn(pos + b[i].first);
    var = min(var, sum[pos + b[i].first - 1] - sum[pos + b[i].second - 1] +
                       fn(pos + b[i].first));
  }
  if (var == -1) return dp[pos] = a[pos] + fn(pos + 1);
  return dp[pos] = min(var, a[pos] + fn(pos + 1));
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cin >> n >> m >> k;
  for (long long i = 1; i <= n; i++) cin >> a[i];
  sort(a, a + n + 1);
  sum[1] = a[1];
  for (long long i = 2; i <= n; i++) sum[i] = sum[i - 1] + a[i];
  for (long long i = 0; i < m; i++) cin >> b[i].first >> b[i].second;
  cout << fn(1);
  return 0;
}
