#include<bits/stdc++.h>
#define faster ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define db double
#define bo bool
#define vo void
#define ch char
#define fl float
#define ll long long
#define ull unsigned long long
#define str string
#define re return
#define all(x) (x).begin(),(x).end()
using namespace std;
//ĐỀ THI TUYỂN SINH VÀO LỚP 10 THPT CHUYÊN HÀ TĨNH
vo bai1()
{
ll k;
cin>>k;
cout<<k*k-1;
}
bo ok(ll n)
{
if(n<2) re 0;
if(n<=3) re 1;
if(n%2==0||n%3==0) re 0;
for(ll i=5;i<=sqrt(n);i+=6) if(n%i==0||n%(i+2)==0) re 0;
re 1;
}
vo bai2()
{
ll t=0;
str n;
cin>>n;
for(ch c:n) t+=pow(c-'0',2);
cout<<(ok(t)?1:-1)<<"\n"<<t;
}
vo bai3()
{
ll n,i,d=1,res=0;
cin>>n;
vector<ll> a(n);
for(auto &i:a) cin>>i;
for(i=1;i<n;i++)
{
if(a[i]*a[i-1]>0) d++;
else
{
res=max(res,d);
d=1;
}
}
cout<<max(res,d);
}
vo bai4()
{
ll n,i,dem[4]={0,0,0,0},sl=3,res=LLONG_MAX,l=0,r;
cin>>n;
vector<pair<ll,ll>> a(n);
for(i=0;i<n;i++) cin>>a[i].first>>a[i].second;
sort(all(a),[](auto &x, auto &y){re x.first<y.first;});
for(r=0;r<n;r++)
{
if(dem[a[r].second]++==0) sl--;
while(sl==0)
{
res=min(res,a[r].first-a[l].first);
if(dem[a[l].second]--==1) sl++;
l++;
}
}
cout<<(res==LLONG_MAX?-1:res);
}
int main()
{
faster
// bai1();
// bai2();
// bai3();
// bai4();
re 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBmYXN0ZXIgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKDApO2NvdXQudGllKDApOwojZGVmaW5lIGRiIGRvdWJsZQojZGVmaW5lIGJvIGJvb2wKI2RlZmluZSB2byB2b2lkCiNkZWZpbmUgY2ggY2hhcgojZGVmaW5lIGZsIGZsb2F0CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIHN0ciBzdHJpbmcKI2RlZmluZSByZSByZXR1cm4KI2RlZmluZSBhbGwoeCkgKHgpLmJlZ2luKCksKHgpLmVuZCgpCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci8vxJDhu4AgVEhJIFRVWeG7gk4gU0lOSCBWw4BPIEzhu5pQIDEwIFRIUFQgQ0hVWcOKTiBIw4AgVMSoTkgKdm8gYmFpMSgpCnsKCWxsIGs7CgljaW4+Pms7Cgljb3V0PDxrKmstMTsKfQpibyBvayhsbCBuKQp7CglpZihuPDIpIHJlIDA7CglpZihuPD0zKSByZSAxOwoJaWYobiUyPT0wfHxuJTM9PTApIHJlIDA7Cglmb3IobGwgaT01O2k8PXNxcnQobik7aSs9NikgaWYobiVpPT0wfHxuJShpKzIpPT0wKSByZSAwOwoJcmUgMTsKfQp2byBiYWkyKCkKewoJbGwgdD0wOwoJc3RyIG47CgljaW4+Pm47Cglmb3IoY2ggYzpuKSB0Kz1wb3coYy0nMCcsMik7Cgljb3V0PDwob2sodCk/MTotMSk8PCJcbiI8PHQ7Cn0Kdm8gYmFpMygpCnsKCWxsIG4saSxkPTEscmVzPTA7CgljaW4+Pm47Cgl2ZWN0b3I8bGw+IGEobik7Cglmb3IoYXV0byAmaTphKSBjaW4+Pmk7Cglmb3IoaT0xO2k8bjtpKyspCgl7CgkJaWYoYVtpXSphW2ktMV0+MCkgZCsrOwoJCWVsc2UKCQl7CgkJCXJlcz1tYXgocmVzLGQpOwoJCQlkPTE7CgkJfQoJfQoJY291dDw8bWF4KHJlcyxkKTsKfQp2byBiYWk0KCkKewoJbGwgbixpLGRlbVs0XT17MCwwLDAsMH0sc2w9MyxyZXM9TExPTkdfTUFYLGw9MCxyOwoJY2luPj5uOwogICAgdmVjdG9yPHBhaXI8bGwsbGw+PiBhKG4pOwogICAgZm9yKGk9MDtpPG47aSsrKSBjaW4+PmFbaV0uZmlyc3Q+PmFbaV0uc2Vjb25kOwogICAgc29ydChhbGwoYSksW10oYXV0byAmeCwgYXV0byAmeSl7cmUgeC5maXJzdDx5LmZpcnN0O30pOwogICAgZm9yKHI9MDtyPG47cisrKQoJewogICAgICAgIGlmKGRlbVthW3JdLnNlY29uZF0rKz09MCkgc2wtLTsKICAgICAgICB3aGlsZShzbD09MCkKCQl7CiAgICAgICAgICAgIHJlcz1taW4ocmVzLGFbcl0uZmlyc3QtYVtsXS5maXJzdCk7CiAgICAgICAgICAgIGlmKGRlbVthW2xdLnNlY29uZF0tLT09MSkgc2wrKzsKICAgICAgICAgICAgbCsrOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQ8PChyZXM9PUxMT05HX01BWD8tMTpyZXMpOwp9CmludCBtYWluKCkKewoJZmFzdGVyCi8vCWJhaTEoKTsKLy8JYmFpMigpOwovLwliYWkzKCk7Ci8vCWJhaTQoKTsKCXJlIDA7Cn0K