A. Катание на Коньках
ограничение по времени на тест
2 seconds
ограничение по памяти на тест
256 megabytes
ввод
stdin
вывод
stdout

Байтек учится кататься на льду. Он новичок, и поэтому он передвигается следующим образом: сначала отталкивается от сугроба на север, восток, юг или запад — и катится до тех пор, пока не повстречает очередной сугроб. Байтек заметил, что таким образом он не сможет добраться от некоторых сугробов до некоторых других, какой бы ни была последовательность его движений. Теперь он хочет соорудить несколько дополнительных сугробов так, чтобы он мог добраться от любого сугроба до любого другого. Байтек попросил Вас найти наименьшее количество сугробов, которые ему потребуется соорудить.

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

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

В первой строке входного файла записано единственное целое число n (1 ≤ n ≤ 100) — количество сугробов. Каждая из следующих n строк содержит по два целых числа xi и yi (1 ≤ xi, yi ≤ 1000) — координаты i-ого сугроба.

Обратите внимание, что направление на север совпадает с направлением оси Oy, таким образом, направление на восток совпадает с направлением оси Ox. Все сугробы расположены в различных точках.

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

Выведите наименьшее количество сугробов, которые надо соорудить Байтеку для того, чтобы он мог добраться от любого сугроба до любого другого.

Примеры
Входные данные
2
2 1
1 2
Выходные данные
1
Входные данные
2
2 1
4 1
Выходные данные
0