#include <bits/stdc++.h>
using namespace std;
int main() {
  priority_queue<pair<long long int, long long int>,
                 vector<pair<long long int, long long int> >,
                 greater<pair<long long int, long long int> > >
      q;
  int n, m;
  cin >> n >> m;
  long long int a[n];
  long long int c[n];
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < n; i++) {
    cin >> c[i];
    q.push(make_pair(c[i], i));
  }
  long long int t, d;
  for (int i = 0; i < m; i++) {
    cin >> t >> d;
    t--;
    long long int ans = 0;
    if (d <= a[t]) {
      ans = d * c[t];
      a[t] -= d;
      cout << ans << endl;
    } else {
      ans = a[t] * c[t];
      d -= a[t];
      a[t] = 0;
      bool f = 0;
      while (!q.empty()) {
        while (!q.empty() && a[q.top().second] == 0) q.pop();
        if (q.empty()) break;
        pair<int, int> p = q.top();
        if (d <= a[p.second]) {
          ans += d * p.first;
          a[p.second] -= d;
          f = 1;
          cout << ans << endl;
          break;
        } else {
          ans += a[p.second] * p.first;
          d -= a[p.second];
          a[p.second] = 0;
          q.pop();
        }
      }
      if (!f) cout << "0" << endl;
    }
  }
}
