#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;
}
