#include <bits/stdc++.h>
using namespace std;
int c[15];
int ma[305];
int cnt = 0;
const long long inf = 1999999999999999999ll;
struct matrix {
  long long a[75][75];
  friend matrix operator*(const matrix &a, const matrix &b) {
    matrix c;
    for (int i = 0; i < cnt; i++) {
      for (int j = 0; j < cnt; j++) {
        c.a[i][j] = inf;
      }
    }
    for (int i = 0; i < cnt; i++) {
      for (int j = 0; j < cnt; j++) {
        for (int k = 0; k < cnt; k++) {
          c.a[i][k] = min(c.a[i][k], a.a[i][j] + b.a[j][k]);
        }
      }
    }
    return c;
  }
  matrix() {
    for (int i = 0; i < 75; i++) {
      for (int j = 0; j < 75; j++) {
        a[i][j] = inf;
      }
      a[i][i] = 0;
    }
  }
};
matrix a;
matrix mul(int x) {
  if (x == 0) {
    return matrix();
  }
  matrix b = mul(x / 2);
  b = b * b;
  if (x % 2 == 1) {
    b = b * a;
  }
  return b;
}
pair<int, int> p[75];
int main() {
  int x, k;
  int n, q;
  scanf("%d%d%d%d", &x, &k, &n, &q);
  for (int i = 0; i < k; i++) {
    scanf("%d", &c[i]);
  }
  memset(ma, -1, sizeof(ma));
  for (int i = 0; i < (1 << k); i++) {
    int sum = 0;
    for (int j = 0; j < k; j++) {
      if ((1 << j) & i) {
        sum++;
      }
    }
    if (sum == x) {
      ma[i] = cnt++;
    }
  }
  for (int i = 0; i < cnt; i++) {
    for (int j = 0; j < cnt; j++) {
      a.a[i][j] = inf;
    }
  }
  for (int i = 0; i < (1 << k); i++) {
    if (ma[i] == -1) {
      continue;
    }
    if (i & 1) {
      for (int j = 1; j <= k; j++) {
        if ((1 << j) & i) {
          continue;
        }
        a.a[ma[i]][ma[((1 << j) ^ i) >> 1]] = c[j - 1];
      }
    } else {
      a.a[ma[i]][ma[i >> 1]] = 0;
    }
  }
  int now = 1;
  for (int i = 0; i < q; i++) {
    scanf("%d%d", &p[i].first, &p[i].second);
  }
  sort(p, p + q);
  matrix xx;
  long long ans = 0;
  for (int i = 0; i < q; i++) {
    if (p[i].first >= n - x + 1) {
      ans += p[i].second;
      continue;
    }
    xx = xx * mul(p[i].first - now);
    now = p[i].first;
    for (int j = 1; j < (1 << k); j += 2) {
      if (ma[j] != -1) {
        for (int l = 0; l < cnt; l++) {
          xx.a[l][ma[j]] += p[i].second;
        }
      }
    }
  }
  xx = xx * mul(n - x + 1 - now);
  cout << xx.a[0][0] + ans << endl;
  return 0;
}
