Олимпиадный тренинг

Задача . E. Точки, прямые и неоригинальные названия


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

Если рассматривать несколько совпадающих прямых как одну, то сколько различных картинок может получиться? Ответ вывести по модулю 109 + 7.

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

В первой строке дано целое число n (1 ≤ n ≤ 105) — количество точек.

Далее идет n строк. В (i + 1)-й строке даны два целых числа xi, yi ( - 109 ≤ xi, yi ≤ 109) — координаты i-й точки.

Гарантируется, что все точки различны.

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

Вывести количество различных картинок по модулю 109 + 7.

Примечание

В первом примере через точки проходят две вертикальные и две горизонтальные прямые. Существуют способы получить картинку из любого набора этих прямых. В частности, получить картинку на которой нарисованы все четыре прямые можно двумя способами (каждый отрезок обозначает прямую, которой отрезок принадлежит).

Первый способ: Второй способ:

Во втором примере для каждой точки можно независимо выполнить одно из трех действий. Количество картинок равно 32 = 9.


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

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя