F. Мультивселенная
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

Рассмотрим бесконечную сетку из единичных квадратов. Некоторые ячейки сетки являются планетами.

Мультивселенная M = {p1, p2, ..., pk} — это набор планет. Предположим, что есть бесконечный ряд или столбец со следующими двумя свойствами: 1) он не содержит ни одну планету pi из мультивселенной M; 2) по обе стороны от этого столбца или строки находятся планеты из M. В этом случае мы можем разбить мультивселенную M на две непустые мультивселенные M1 и M2, содержащие планеты, расположенные по соответствующую сторону этого ряда или столбца.

Мультивселенная, которую нельзя разделить, используя описанную выше операцию, называется вселенной. Мы выполняем операции, пока все мультивселенные не превратятся во вселенные.

Вам даны положения планет в изначальной мультивселенной. Найдите количество вселенных, которые появятся в результате описанного процесса. Можно доказать, что результат не зависит от порядка произведения операций.

Входные данные

В первой строке входного файла записано целое число n, (1 ≤ n ≤ 105), обозначающее количество планет в мультивселенной.

В каждой из следующих строк содержится по паре целых чисел xi и yi, ( - 109 ≤ xi, yi ≤ 109), обозначающих координаты i-ой планеты. Все планеты расположены в различных ячейках сетки.

Выходные данные

Выведите итоговое количество вселенных.

Примеры
Входные данные
5
0 0
0 2
2 0
2 1
2 2
Выходные данные
3
Входные данные
8
0 0
1 0
0 2
0 3
3 0
3 1
2 3
3 3
Выходные данные
1
Примечание

Следующий рисунок описывает первый тест: