int n = int.Parse(Console.ReadLine());
var points = new (int x, int y)[n];
for (int i = 0; i < n; i++)
var coordinates = Console.ReadLine().Split().Select(int.Parse).ToArray();
points[i] = (coordinates[0], coordinates[1]);
var sortedPoints = points.OrderBy(p => p.x).ThenBy(p => p.y).ToArray();
for (int i = 1; i < n; i++)
for (int j = 0; j < i; j++)
if (sortedPoints[i].x >= sortedPoints[j].x && sortedPoints[i].y >= sortedPoints[j].y)
dp[i] = Math.Max(dp[i], dp[j] + 1);
Console.WriteLine(dp.Max());