#include <bits/stdc++.h>
using namespace std;
int n, q, i;
long long a, b, f[200000], zui[200000], v[200000];
int c[200000];
long long cou(long long a, long long b) {
  int i;
  for (i = 0; i <= n; i++) zui[c[i]] = -9999999999999999;
  int da = 1, ci = 0;
  for (i = 1; i <= n; i++) {
    f[i] = v[i] * b;
    if (zui[c[i]] + a * v[i] > f[i]) f[i] = zui[c[i]] + a * v[i];
    if (da != c[i]) {
      if (zui[da] + b * v[i] > f[i]) f[i] = zui[da] + b * v[i];
    } else if (zui[ci] + b * v[i] > f[i])
      f[i] = zui[ci] + b * v[i];
    if (f[i] > zui[c[i]]) zui[c[i]] = f[i];
    if (zui[c[i]] >= zui[da]) {
      if (da != c[i]) {
        ci = da;
        da = c[i];
      }
    } else if (zui[c[i]] > zui[ci])
      if (ci != c[i]) ci = c[i];
  }
  if (zui[da] > 0) return zui[da];
  return 0;
}
int main() {
  scanf("%d%d", &n, &q);
  for (i = 1; i <= n; i++) scanf("%I64d", &v[i]);
  for (i = 1; i <= n; i++) scanf("%d", &c[i]);
  for (i = 1; i <= q; i++) {
    scanf("%I64d%I64d", &a, &b);
    printf("%I64d\n", cou(a, b));
  }
}
