#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1010;
ll n,m,a[N],f[N],cnt[N];
int main () {
freopen("seqsqrt.in","r",stdin);
freopen("seqsqrt.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin >> n >> m;
for (int i=1;i<=n;i++) {
cin >> a[i];
}
for (int i=1;i<=m;i++) {
cin >> f[i];
cnt[f[i]]++;
}
while (m--) {
int op,l,r,x;
cin >> op >> l >> r;
if (op==1) {
cin >> x;
for (int i=l;i<=r;i++) a[i]+=x;
}else if (op==2) {
cnt[f[l]]--,cnt[r]++;
f[l]=r;
}else{
cin >> x;
ll sum=0;
for (int i=l;i<=r;i++) {
if (f[i]==x) sum+=a[i];
}
sum*=cnt[x];
cout << sum <<endl;
}
}
return 0;
}