#include using namespace std; using ull = uint64_t; using ll = int64_t; using vi = vector; using vll = vector; using vs = vector; using ld = long double; using P = pair; using G = vector>; #define LO(...) (void)0 #define debug(x) (void)0 #define reps(i,a,n) for(ll i##_len = (ll)(n), i = (a); i < i##_len; ++i) #define rep(i,n) reps(i,0,(n)) #define rrep(i,n) reps(i,1,(n)+1) #define repd(i,n) for(ll i=(n)-1;i>=0;i--) #define rrepd(i,n) for(ll i=(n);i>=1;i--) namespace std {template istream &operator>>(istream &is, pair &v){return is>>v.first>>v.second;}} templatevoid input(T& a){cin>>a;} templatevoid input(T& a,Ts&... b){cin>>a;input(b...);} #define inp(...) ll __VA_ARGS__;input(__VA_ARGS__) #define inps(...) string __VA_ARGS__;input(__VA_ARGS__) #define inpp(p) cin >> (p).first >> (p).second #define inpv(v,N) vll v(N);rep(i,N)cin>>v[i]; #define inpvs(v,N) vs v(N);rep(i,N)cin>>v[i]; #define all(v) begin(v),end(v) #define Yes cout<<"Yes\n" #define No cout<<"No\n" #define allok(i,N,pred) [&]()->bool{bool allok_=1;rep(i,N)if(!(pred))allok_=0;return allok_;}() #define anyok(i,N,pred) [&]()->bool{bool anyok_=0;rep(i,N)if(pred)anyok_=1;return anyok_;}() inline void YESNO(bool b){cout<<(b?"YES\n":"NO\n");}inline void yesno(bool b){cout<<(b?"yes\n":"no\n");}inline void YesNo(bool b){cout<<(b?"Yes\n":"No\n");} #define SP cout<<' ' #define ENDL cout<<'\n' #define setfp cout<string join(const C &v){ostringstream s;bool f=1;for(auto &&e:v){if(!f)s<<' ';f=0;s<string joinadd(const C &v){ostringstream s;bool f=1;for(auto &&e:v){if(!f)s<<' ';f=0;s<void prv_(const C &v){cout<void prvadd_(const C &v){cout<void prv(const C &v){prv_(v);ENDL;} templatevoid prvadd(const C &v){prvadd_(v);ENDL;} templateusing rr_void_t=void; templatestruct is_container:false_type{}; templatestruct is_container>:true_type{}; template::value && !is_same::value>> void pr_(const T& a){prv_(a);} template::value || is_same::value>,typename=void> void pr_(const T& a){cout<void pr(const T& a){pr_(a);cout<<'\n';} templatevoid pr(const T& a,const Ts&... b){pr_(a);cout<<' ';pr(b...);} templatevoid prs(const T& a){pr_(a);SP;} inline ll max(ll a, ll b){return max(a, b);} inline ll min(ll a, ll b){return min(a, b);} templatebool chmax(T &a,const T &b){return abool chmin(T &a,const T &b){return b>void so(T &a,C c=C{}){sort(begin(a),end(a),c);} template>void rso(T &a,C c=C{}){sort(rbegin(a),rend(a),c);} templatevoid rev(T &a){reverse(begin(a),end(a));} constexpr ll INF = 1e18; int main() { inp(N,M); inpv(a,M); ll cur = 0; rep(i,M)cur+=a[i]*a[i]; inp(Q); rep(i,Q){ inp(C,K,D); C--; D--; cur -= a[C]*a[C]; a[C] -= K; cur += a[C]*a[C]; cur -= a[D]*a[D]; a[D] += K; cur += a[D]*a[D]; pr(cur); } }