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