// TLE
#include <iostream>
#include <vector>
#include <map>
#define repeat(i,n) for (int i = 0; (i) < int(n); ++(i))
#define repeat_from(i,m,n) for (int i = (m); (i) < int(n); ++(i))
using namespace std;
int main() {
    int n, q; cin >> n >> q;
    vector<int> x(n);
    map<vector<int>, int> f;
    f[x] = 0;
    repeat (t,q) {
        char c; cin >> c;
        if (c == '!') {
            int l, r, k; cin >> l >> r >> k;
            repeat_from (i,l,r) x[i] += k;
            if (not f.count(x)) f[x] = t+1;
        } else if (c == '?') {
            cout << f[x] << endl;
        }
    }
    return 0;
}