1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
/*#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
	int ile;
	unsigned long long suma = 0, minNieparzysta = 18446744073709551615, temp;

	scanf("%llu", &ile);
	while (ile--){
		scanf("%llu", &temp);
		if (minNieparzysta > temp && temp%2!=0) minNieparzysta = temp;
		suma += temp;
	}

	if (suma % 2 != 0)suma -= minNieparzysta;
	if (suma % 2 != 0 || suma==0) printf("NIESTETY");
	else printf("%llu",suma);
}
*/

#include <iostream>
#include <stdio.h>

using namespace std;

class ziema{

public:
     long wysokoscTrawy;
     long wzrost;

    ziema(): wysokoscTrawy(0){}

    void rosnij(){
        wysokoscTrawy+=wzrost;
    }

    long koszenie(long dojakiejWyskosci){

   //     int wysokosc=wysokoscTrawy;

        long wagaTrawy = wysokoscTrawy-dojakiejWyskosci;

        wysokoscTrawy=dojakiejWyskosci;

        if(wagaTrawy>=0)return wagaTrawy;
        else return 0;
    }

};

int main()
{
     long liczbaPowieszchni, liczbaKoszen,temp,trawaPoSkoszeniu,wagaSkoszonejTrway=0;


  //  cin>>liczbaPowieszchni;
  //  cin>>liczbaKoszen;

    scanf("%ld",&liczbaPowieszchni);
    scanf("%ld",&liczbaKoszen);

    ziema powierzchnia[liczbaPowieszchni];

    for(long i=0;i<liczbaPowieszchni;i++){
        //cin>>temp;
        scanf("%ld",&temp);
        powierzchnia[i].wzrost=temp;
    }

    //cin>>temp;
    scanf("%ld",&temp);
    for(long j=1,k=0;k<liczbaKoszen;j++){

        for(long i=0;i<liczbaPowieszchni;i++){
            powierzchnia[i].rosnij();
        }
//cout<<"\tj= "<<j<<" temp= "<<temp<<endl;
        if(temp!=j)continue;
        k++;
      //  cin>>trawaPoSkoszeniu;
       // cin>>temp;
         scanf("%ld",&trawaPoSkoszeniu);
          scanf("%ld",&temp);
        for(long i=0;i<liczbaPowieszchni;i++){
            wagaSkoszonejTrway+=powierzchnia[i].koszenie(trawaPoSkoszeniu);
            //cout<<'\n'<<powierzchnia[i].wysokoscTrawy;
        }
        //cout<<'\n';
        //cout<<wagaSkoszonejTrway<<'\n';
        printf("%lu\n",wagaSkoszonejTrway);
        wagaSkoszonejTrway=0;

    }


}