// AOJ 2331: A Way to Invite Friends
// 2017.9.27 bal4u@uu
// ????????????????????????????????????????????§????????????????????????????????????????????£????????\?????§??????

#include <stdio.h>
#include <stdlib.h>

#define MAX 100003
typedef struct { int t; } QUE;
QUE que[MAX]; int qsize;

#define PARENT(i) ((i)>>1)
#define LEFT(i)   ((i)<<1)
#define RIGHT(i)  (((i)<<1)+1)

void min_heapify(int i)
{
  int l, r;
  int min;

  l = LEFT(i), r = RIGHT(i);
  if (l < qsize && que[l].t < que[i].t) min = l; else min = i;
  if (r < qsize && que[r].t < que[min].t) min = r;
  if (min != i) {
    QUE t = que[i]; que[i] = que[min]; que[min] = t;
    min_heapify(min);
  }
}

int deq(int *b)
{
  if (qsize == 0) return 0;
  *b = que[0].t;
  que[0] = que[--qsize];
  min_heapify(0);
  return 1;
}

void enq(int b)
{
  int i, ii;

  i = qsize++;
  que[i].t = b;
  while (i > 0 && que[ii = PARENT(i)].t > que[i].t) {
    QUE tt = que[i]; que[i] = que[ii]; que[ii] = tt;
    i = ii;
  }
}

typedef struct { int a, b; } T;
T tbl[MAX];

// ??????[a,b] ???a??´??????????????????a????£???????b??´???????????§?????????
int cmp(T *a, T *b) { if (a->a - b->a) return a->a - b->a; return a->b - b->b; }

int main()
{
	int n, a, b, i, cnt, ans;

	scanf("%d", &n);
	for (i = 0; i < n; i++)	scanf("%d%d", &tbl[i].a, &tbl[i].b);
	qsort(tbl, n, sizeof(T), cmp);
	qsize = 0;					// ????????????????????£?????\???????????????
	cnt = ans = 0;
	for (i = 0; i < n; i++) {
		a = tbl[i].a, enq(tbl[i].b);
		b = que[0].t;
		if (a <= b) { if (++cnt >= a && cnt > ans) ans = cnt; }
		else while (b < a) cnt--, deq(&b);
	}
	if (ans < 1) ans = 1;
	printf("%d\n", ans-1);
	return 0;
}