#include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) typedef vector VI; typedef vector VVI; typedef vector VL; typedef vector VVL; typedef long long LL; #define all(a) (a).begin(), (a).end() #define Yes(n) cout << ((n) ? "Yes" : "No" ) << endl #define ALL(a) (a).begin(),(a).end() #define pb push_back int A[200000]; int main() { int n;cin>>n; VVI R(n,VI(2)); rep(i,n){ cin>>R[i][0]>>R[i][1]; } sort(all(R)); rep(i,n){A[i]=-1;} A[0]=R[n-1][0]; int siz=0; for(int i=n-2;i>=0;i--){ if(A[siz]>=R[i][1]){siz++; A[siz]=R[i][1];} else if(A[0]1){ t=(r+l)/2; if(A[t]>=R[i][1]){l=t;} else{r=t;} } A[r]=max(A[r],R[i][0]); } } cout<