#include <iostream>
using namespace std;
struct wezel
{
int dod;
int a;
int b;
};
wezel poj[4000005];
int t[4000005];
void dodaj(int v, int tl, int tr, int l, int r, int add) //dodawanie do przedziału l,r
{
// cout<<v<<" "<<tl<<" "<<tr<<" "<<l<<" "<<r<<" "<<add<<endl;
if(l>r)
return;
if(tr==r && tl==l) //wezel zawiera cale poddrzewo ciagu
{
poj[v].dod+=add;
return;
}
else //a co teraz
{
int tm = (tl + tr) / 2;
//lewe poddrzewo tl-tm, prawe poddrzewo tm+1-tr;
if(r<tm)//tylko lewe podrzewo
{
dodaj (v*2, tl, tm, l, r , add);
}
else
if(l>tm) //tylko prawe poddrzewo
dodaj(v*2+1,tm+1,tr,l,r,add);
else //oba poddrzewa
{
dodaj (v*2, tl, tm, l, tm, add); //lewe
dodaj(v*2+1,tm+1,tr,tm+1,r,add);
}
}
}
int get (int v, int tl, int tr, int pos) {
if (tl == tr)
return poj[v].dod;
int tm = (tl + tr) / 2;
if (pos <= tm)
return poj[v].dod + get (v*2, tl, tm, pos);
else
return poj[v].dod + get (v*2+1, tm+1, tr, pos);
}
int main() {
int n, m;
int a,b,ile,p,q;
cin >> n >> m; // Wczytanie liczby pojemników i liczby czynności
for (int i = 0; i < m; ++i) {
cin>>q;
if(q==0)
{
cin>>a>>b>>ile;
dodaj(1,1,n,a,b,ile);
}
else
{
cin>>p;
cout<<get(1,1,n,p)<<endl;
}
}
// countStones(n,p);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IHdlemVsCnsKCWludCBkb2Q7CglpbnQgYTsKCWludCBiOwp9Owp3ZXplbCBwb2pbNDAwMDAwNV07CmludCB0WzQwMDAwMDVdOwoKdm9pZCBkb2RhaihpbnQgdiwgaW50IHRsLCBpbnQgdHIsIGludCBsLCBpbnQgciwgaW50IGFkZCkgLy9kb2Rhd2FuaWUgZG8gcHJ6ZWR6aWHFgnUgbCxyCnsKLy8JY291dDw8djw8IiAiPDx0bDw8IiAiPDx0cjw8IiAiPDxsPDwiICI8PHI8PCIgIjw8YWRkPDxlbmRsOyAKCWlmKGw+cikKCSAgcmV0dXJuOwoJaWYodHI9PXIgJiYgdGw9PWwpIC8vd2V6ZWwgemF3aWVyYSBjYWxlIHBvZGRyemV3byBjaWFndQoJewoJCXBvalt2XS5kb2QrPWFkZDsKCQlyZXR1cm47Cgl9CgllbHNlIC8vYSBjbyB0ZXJhegoJewoJCWludCB0bSA9ICh0bCArIHRyKSAvIDI7CgkJLy9sZXdlIHBvZGRyemV3byB0bC10bSwgcHJhd2UgcG9kZHJ6ZXdvIHRtKzEtdHI7CgkJaWYocjx0bSkvL3R5bGtvIGxld2UgcG9kcnpld28KCQl7CgkJZG9kYWogKHYqMiwgdGwsIHRtLCBsLCByICwgYWRkKTsKCQl9CgkJZWxzZQoJCSAgaWYobD50bSkgLy90eWxrbyBwcmF3ZSBwb2Rkcnpld28KCQkJICBkb2Rhaih2KjIrMSx0bSsxLHRyLGwscixhZGQpOwoJCSAgZWxzZSAvL29iYSBwb2Rkcnpld2EJICAKCSAgICAJewoJICAgICAgICAJZG9kYWogKHYqMiwgdGwsIHRtLCBsLCB0bSwgYWRkKTsgLy9sZXdlCgkgICAgICAgIAlkb2Rhaih2KjIrMSx0bSsxLHRyLHRtKzEscixhZGQpOwoJICAgIAl9Cgl9Cn0KCmludCBnZXQgKGludCB2LCBpbnQgdGwsIGludCB0ciwgaW50IHBvcykgewoJaWYgKHRsID09IHRyKQoJCXJldHVybiBwb2pbdl0uZG9kOwoJaW50IHRtID0gKHRsICsgdHIpIC8gMjsKCWlmIChwb3MgPD0gdG0pCgkJcmV0dXJuIHBvalt2XS5kb2QgKyBnZXQgKHYqMiwgdGwsIHRtLCBwb3MpOwoJZWxzZQoJCXJldHVybiBwb2pbdl0uZG9kICsgZ2V0ICh2KjIrMSwgdG0rMSwgdHIsIHBvcyk7Cn0gIAppbnQgbWFpbigpIHsKCWludCBuLCBtOwoJaW50IGEsYixpbGUscCxxOwogICAgY2luID4+IG4gPj4gbTsgIC8vIFdjenl0YW5pZSBsaWN6YnkgcG9qZW1uaWvDs3cgaSBsaWN6YnkgY3p5bm5vxZtjaQogICAgCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG07ICsraSkgewogICAgICAgIGNpbj4+cTsKICAgICAgICBpZihxPT0wKQogICAgICAgIHsKICAgICAgICAgIGNpbj4+YT4+Yj4+aWxlOwogICAgICAgICAgZG9kYWooMSwxLG4sYSxiLGlsZSk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICBjaW4+PnA7CiAgICAgICAgICBjb3V0PDxnZXQoMSwxLG4scCk8PGVuZGw7CiAgICAgICAgfQogICAgfQoKICAvLyAgY291bnRTdG9uZXMobixwKTsKCiAgICByZXR1cm4gMDsKfQ==