import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
       //贪心+排序+动态规划
       //速度正负数分别表示两个方向
       //两辆车某一时刻处于同一个位置会发生碰撞
       //碰撞条件1.它们朝对方运动或同向但后车更快,并且后车能追上或相向而行相遇
       //静止的车有车朝它开过来 → 会撞上
       //最长不碰撞子序列,所有车按位置x从小到大排序速度非递减排序
       int n=in.nextInt();
       int[][]cars=new int[n][2];
       for(int i=0;i<n;i++){
        cars[i][0]=in.nextInt();
        cars[i][1]=in.nextInt();
       }
        //按位置排序
        Arrays.sort(cars,(a,b)->Integer.compare(a[0],b[0]));
        //求数组最长非递减子序列
        List<Integer>list=new ArrayList<>();
        for(int i=0;i<n;i++){
            int v=cars[i][1];
            int l=0,r=list.size();
            while(l<r){
                int mid=(l+r)/2;
                //找第一个>=v的元素
               if(list.get(mid)<=v){
                l=mid+1;
               }else{
                r=mid;
               }
            }
            if(l==list.size()){
                list.add(v);
            }else{
                //把l位置的值改成v
                list.set(l,v);
            }
        }
        System.out.println(n-list.size());
    }
}