import java.util.Scanner;
import java.io.*;
import java.util.Arrays;

public class Main {
    public static int MAXN = 10001;
    public static int[][] line = new int[MAXN][2];
    public static int n;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StreamTokenizer in = new StreamTokenizer(br);
        PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
        while (in.nextToken() != StreamTokenizer.TT_EOF) {
            n = (int) in.nval;
            for (int i = 0; i < n; i++) {
                in.nextToken();
                line[i][0] = (int) in.nval;
                in.nextToken();
                line[i][1] = (int) in.nval;
            }
            out.println(compute());
        }
        out.flush();
        out.close();
        br.close();
    }
    public static int compute() {
        size=0;
        Arrays.sort(line,0,n,(a,b)->a[0]-b[0]);
        int ans = 0;
        for (int i = 0; i <n ; i++) {
            while (size>0 && line[i][0]>=heap[0]){
                poll();
            }
            add(line[i][1]);
            ans = Math.max(ans,size);
        }
        return ans;
    }
    public static int[] heap = new int[MAXN];
    public static int size;
    public static void add(int x){
        heap[size] = x;
        int i = size++;
        while (heap[i]<heap[(i-1)/2]){
            swap(i,(i-1)/2);
            i = (i-1)/2;
        }
    }
    public static void poll(){
        swap(0,--size);
        int i = 0;
        int l = 1;
        while (l<size){
            int best = l+1<size&&heap[l+1]<heap[l]?l+1:l;
            best = heap[best]<heap[i]?best:i;
            if (best==i){
                break;
            }
            swap(i,best);
            i = best;
            l = i*2+1;
        }
    }
    public static void swap(int a,int b){
        int temp = heap[b];
        heap[b] = heap[a];
        heap[a] = temp;
    }
}