#include <bits/stdc++.h>
using namespace std;
set<int> m;
int num1,num2, cur, n, q;
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> q;
for (int i = 0; i < n; i++) {
cin >> num1;
if (num1 == 1) m.insert(i);
}
cur = 0;
while (q--) {
cin >> num1;
if (num1 == 1) {
cin >> num2;
num2 -= 1;
auto it = m.find(num2);
if(it==m.end()) m.insert(num2);
else { m.erase(it); }
}
else if (num1 == 2) {
cin >> num2;
cur += num2;
cur %= n;
}
else if (num1 == 3) {
if (m.empty()) { cout << -1<<'\n'; continue; }
auto it = m.find(cur);
if (it != m.end()) { cout << 0<<'\n'; continue; }
it = m.upper_bound(cur);
if (it != m.end()) {
cout << *it - cur << '\n';
}
else {
cout << n-cur + *m.begin() << '\n';
}
}
}
}