#include <bits/stdc++.h>
using namespace std;

int main(){
  int D; cin >> D;
  vector<int> c(26);
  for(int i=0; i<26; i++) cin >> c[i];
  vector<vector<int>> s(D,vector<int>(26));
  for(int i=0; i<D; i++){
    for(int j=0; j<26; j++){
      cin >> s[i][j];
    }
  }
  vector<vector<int>> lastc(D+1,vector<int>(26,0));
  vector<int> t(D);
  
  int sat=0;
  for(int i=1; i<=D; i++){
    int cont; cin >> cont;
    cont--;
    t[i-1]=cont;
    
    //lastcの更新
    for(int j=0; j<26; j++){
      if(j==cont) lastc[i][j]=i;
      else lastc[i][j]=lastc[i-1][j];
    }
    
    //満足度の更新
    sat+=s[i-1][cont];
    for(int j=0; j<26; j++){
      if(j==cont){
        continue;
      }else{
        sat-=c[j]*(i-lastc[i][j]);
      }
    }
  }
  
  int M; cin >> M;
  for(int i=0; i<M; i++){
    int d,q; cin >> d >> q; q--;
    int qold=t[d-1];
    t[d-1]=q;
    
    sat-=s[d-1][qold]; //cout << sat << ",";
    sat+=s[d-1][q]; //cout << sat << ",";
    
    for(int j=d; j<=D; j++){
      if(j==d){
        lastc[j][qold]=lastc[j-1][qold];
        sat-=c[qold]*(j-lastc[j][qold]);
      }
      else if(lastc[j][qold]==j){
        break;
      }
      else{
        sat-=c[qold]*(lastc[j][qold]-lastc[j-1][qold]);
        lastc[j][qold]=lastc[j-1][qold];
      }
    }
    
    for(int j=d; j<=D; j++){
      if(j==d){
        sat+=c[q]*(j-lastc[j][q]);
        lastc[j][q]=j;
      }
      else if(lastc[j][q]==j){
        break;
      }
      else{
        sat+=c[q]*(d-lastc[j][q]);
        lastc[j][q]=d;
      }
    }
    
    cout << sat << endl;
  }
}