//#pragma GCC optimize("Ofast,unroll-loops")
//#pragma GCC target("avx2,tune=native")
#include <bits/stdc++.h>
using namespace std;
#define file "o"
#define ff(i,a,b) for (auto i=(a); i<=(b); ++i)
#define nl "\n"
using ll = long long;
const int mod = 1e9+7;
inline void rf(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
if (fopen(file".inp","r")){
freopen(file".inp","r",stdin);
freopen(file".out","w",stdout);
}
}
int n, q;
map<int, long long> cnt;
inline bool dec_one(map<int, long long> &mp, int x){
auto it = mp.find(x);
if (it == mp.end() || it->second == 0) return false;
if (--(it->second) == 0) mp.erase(it);
return true;
}
inline bool merge_ab(map<int, long long> &mp, int a, int b){
if (a == b){
auto it = mp.find(a);
if (it == mp.end() || it->second < 2) return false;
it->second -= 2;
if (it->second == 0) mp.erase(it);
++mp[a+b];
return true;
} else {
auto ita = mp.find(a), itb = mp.find(b);
if (ita == mp.end() || ita->second == 0) return false;
if (itb == mp.end() || itb->second == 0) return false;
// an toàn vì a != b
if (--(ita->second) == 0) mp.erase(ita);
if (--(itb->second) == 0) mp.erase(itb);
++mp[a+b];
return true;
}
}
static inline long long count_pairs_leq(const vector<int> &val, const vector<long long> &c, int x){
const int m = (int)val.size();
long long ans = 0;
int j = 0;
long long window = 0;
for (int i = 0; i < m; ++i){
if (j < i){ j = i; window = 0; }
if (window == 0) window += c[j];
while (j+1 < m && val[j+1] - val[i] <= x){
++j;
window += c[j];
}
long long ci = c[i];
ans += ci * (window - ci) + ci*(ci-1)/2;
window -= ci;
}
return ans;
}
int main(){
rf();
cin >> n >> q;
cnt[1] = n;
while (q--){
int op; cin >> op;
if (op == 1){
int a, b; cin >> a >> b;
merge_ab(cnt, a, b);
} else {
long long k; cin >> k;
vector<int> val; val.reserve(cnt.size());
vector<long long> c; c.reserve(cnt.size());
long long total = 0;
for (auto &p : cnt){
if (p.second == 0) continue;
val.emplace_back(p.first);
c.emplace_back(p.second);
total += p.second;
}
long long total_pairs = total * (total - 1) / 2;
if (k > total_pairs){
cout << -1 << nl;
continue;
}
if (val.size() <= 1){
cout << 0 << nl;
continue;
}
int l = 0, r = val.back() - val.front();
while (l < r){
int mid = l + ((r - l) >> 1);
if (count_pairs_leq(val, c, mid) >= k) r = mid;
else l = mid + 1;
}
cout << l << nl;
}
}
return 0;
}
Ly8jcHJhZ21hIEdDQyBvcHRpbWl6ZSgiT2Zhc3QsdW5yb2xsLWxvb3BzIikKLy8jcHJhZ21hIEdDQyB0YXJnZXQoImF2eDIsdHVuZT1uYXRpdmUiKQojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgZmlsZSAibyIKI2RlZmluZSBmZihpLGEsYikgZm9yIChhdXRvIGk9KGEpOyBpPD0oYik7ICsraSkKI2RlZmluZSBubCAiXG4iCgp1c2luZyBsbCA9IGxvbmcgbG9uZzsKCmNvbnN0IGludCBtb2QgPSAxZTkrNzsKCmlubGluZSB2b2lkIHJmKCl7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwogICAgaWYgKGZvcGVuKGZpbGUiLmlucCIsInIiKSl7CiAgICAgICAgZnJlb3BlbihmaWxlIi5pbnAiLCJyIixzdGRpbik7CiAgICAgICAgZnJlb3BlbihmaWxlIi5vdXQiLCJ3IixzdGRvdXQpOwogICAgfQp9CgppbnQgbiwgcTsKbWFwPGludCwgbG9uZyBsb25nPiBjbnQ7ICAKCmlubGluZSBib29sIGRlY19vbmUobWFwPGludCwgbG9uZyBsb25nPiAmbXAsIGludCB4KXsKICAgIGF1dG8gaXQgPSBtcC5maW5kKHgpOwogICAgaWYgKGl0ID09IG1wLmVuZCgpIHx8IGl0LT5zZWNvbmQgPT0gMCkgcmV0dXJuIGZhbHNlOwogICAgaWYgKC0tKGl0LT5zZWNvbmQpID09IDApIG1wLmVyYXNlKGl0KTsKICAgIHJldHVybiB0cnVlOwp9CgppbmxpbmUgYm9vbCBtZXJnZV9hYihtYXA8aW50LCBsb25nIGxvbmc+ICZtcCwgaW50IGEsIGludCBiKXsKICAgIGlmIChhID09IGIpewogICAgICAgIGF1dG8gaXQgPSBtcC5maW5kKGEpOwogICAgICAgIGlmIChpdCA9PSBtcC5lbmQoKSB8fCBpdC0+c2Vjb25kIDwgMikgcmV0dXJuIGZhbHNlOwogICAgICAgIGl0LT5zZWNvbmQgLT0gMjsKICAgICAgICBpZiAoaXQtPnNlY29uZCA9PSAwKSBtcC5lcmFzZShpdCk7CiAgICAgICAgKyttcFthK2JdOwogICAgICAgIHJldHVybiB0cnVlOwogICAgfSBlbHNlIHsKICAgICAgICBhdXRvIGl0YSA9IG1wLmZpbmQoYSksIGl0YiA9IG1wLmZpbmQoYik7CiAgICAgICAgaWYgKGl0YSA9PSBtcC5lbmQoKSB8fCBpdGEtPnNlY29uZCA9PSAwKSByZXR1cm4gZmFsc2U7CiAgICAgICAgaWYgKGl0YiA9PSBtcC5lbmQoKSB8fCBpdGItPnNlY29uZCA9PSAwKSByZXR1cm4gZmFsc2U7CiAgICAgICAgLy8gYW4gdG/DoG4gdsOsIGEgIT0gYgogICAgICAgIGlmICgtLShpdGEtPnNlY29uZCkgPT0gMCkgbXAuZXJhc2UoaXRhKTsKICAgICAgICBpZiAoLS0oaXRiLT5zZWNvbmQpID09IDApIG1wLmVyYXNlKGl0Yik7CiAgICAgICAgKyttcFthK2JdOwogICAgICAgIHJldHVybiB0cnVlOwogICAgfQp9CgpzdGF0aWMgaW5saW5lIGxvbmcgbG9uZyBjb3VudF9wYWlyc19sZXEoY29uc3QgdmVjdG9yPGludD4gJnZhbCwgY29uc3QgdmVjdG9yPGxvbmcgbG9uZz4gJmMsIGludCB4KXsKICAgIGNvbnN0IGludCBtID0gKGludCl2YWwuc2l6ZSgpOwogICAgbG9uZyBsb25nIGFucyA9IDA7CiAgICBpbnQgaiA9IDA7CiAgICBsb25nIGxvbmcgd2luZG93ID0gMDsgCgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtOyArK2kpewogICAgICAgIGlmIChqIDwgaSl7IGogPSBpOyB3aW5kb3cgPSAwOyB9CiAgICAgICAgaWYgKHdpbmRvdyA9PSAwKSB3aW5kb3cgKz0gY1tqXTsKCiAgICAgICAgd2hpbGUgKGorMSA8IG0gJiYgdmFsW2orMV0gLSB2YWxbaV0gPD0geCl7CiAgICAgICAgICAgICsrajsKICAgICAgICAgICAgd2luZG93ICs9IGNbal07CiAgICAgICAgfQogICAgICAgIGxvbmcgbG9uZyBjaSA9IGNbaV07CiAgICAgICAgYW5zICs9IGNpICogKHdpbmRvdyAtIGNpKSArIGNpKihjaS0xKS8yOwogICAgICAgIHdpbmRvdyAtPSBjaTsKICAgIH0KICAgIHJldHVybiBhbnM7Cn0KCmludCBtYWluKCl7CiAgICByZigpOwogICAgY2luID4+IG4gPj4gcTsKICAgIGNudFsxXSA9IG47CgogICAgd2hpbGUgKHEtLSl7CiAgICAgICAgaW50IG9wOyBjaW4gPj4gb3A7CiAgICAgICAgaWYgKG9wID09IDEpewogICAgICAgICAgICBpbnQgYSwgYjsgY2luID4+IGEgPj4gYjsKICAgICAgICAgICAgbWVyZ2VfYWIoY250LCBhLCBiKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBsb25nIGxvbmcgazsgY2luID4+IGs7CgogICAgICAgICAgICB2ZWN0b3I8aW50PiB2YWw7IHZhbC5yZXNlcnZlKGNudC5zaXplKCkpOwogICAgICAgICAgICB2ZWN0b3I8bG9uZyBsb25nPiBjOyBjLnJlc2VydmUoY250LnNpemUoKSk7CiAgICAgICAgICAgIGxvbmcgbG9uZyB0b3RhbCA9IDA7CiAgICAgICAgICAgIGZvciAoYXV0byAmcCA6IGNudCl7CiAgICAgICAgICAgICAgICBpZiAocC5zZWNvbmQgPT0gMCkgY29udGludWU7CiAgICAgICAgICAgICAgICB2YWwuZW1wbGFjZV9iYWNrKHAuZmlyc3QpOwogICAgICAgICAgICAgICAgYy5lbXBsYWNlX2JhY2socC5zZWNvbmQpOwogICAgICAgICAgICAgICAgdG90YWwgKz0gcC5zZWNvbmQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbG9uZyBsb25nIHRvdGFsX3BhaXJzID0gdG90YWwgKiAodG90YWwgLSAxKSAvIDI7CiAgICAgICAgICAgIGlmIChrID4gdG90YWxfcGFpcnMpewogICAgICAgICAgICAgICAgY291dCA8PCAtMSA8PCBubDsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh2YWwuc2l6ZSgpIDw9IDEpewogICAgICAgICAgICAgICAgY291dCA8PCAwIDw8IG5sOwogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGludCBsID0gMCwgciA9IHZhbC5iYWNrKCkgLSB2YWwuZnJvbnQoKTsKICAgICAgICAgICAgd2hpbGUgKGwgPCByKXsKICAgICAgICAgICAgICAgIGludCBtaWQgPSBsICsgKChyIC0gbCkgPj4gMSk7CiAgICAgICAgICAgICAgICBpZiAoY291bnRfcGFpcnNfbGVxKHZhbCwgYywgbWlkKSA+PSBrKSByID0gbWlkOwogICAgICAgICAgICAgICAgZWxzZSBsID0gbWlkICsgMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb3V0IDw8IGwgPDwgbmw7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDA7Cn0K