D. Сбор колоды
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

На столе есть n карточек. Для каждой карты известно два числа — сила карточки и номер серии. Вы собираете колоду:

  • Карточки берутся по очереди из оставшихся на столе в любом порядке;
  • Нельзя взять карточку той же силы, что и у предыдущей. Первая может быть любой силы;
  • Начиная со второй карты требуется заплатить по одному медяку, за каждую карточку на столе, которая по силе находится строго между текущей карточкой и предыдущей;
  • После уплаты медяков из оставшихся на столе карточек убираются все, чей номер серии меньше или равен номеру серии текущей карточки;
  • Начиная с третьей карты должно выполняться условие "смены направления силы", т. е. если силы текущей, предыдущей и предпредыдущей выбранных карточек соответственно обозначены a, b и c, то условие выполняется, если b < min(a, c) или b > max(a, c);
  • Сбор колоды прекращается, когда нет возможности выбрать следующую карточку из оставшихся на столе.

Требуется посчитать суммарную цену в медяках по всем возможным колодам. Две колоды считаются различными, если существует карточка, которая входит в одну колоду и не входит в другую. При этом у различных карточек могут быть одинаковые сила и серия.

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

В первой строке задается число n — количество карточек из которых будет собираться колода. В следующих n строках задается по два целых числа si ki — сила и номер серии i-й карточки.

1 ≤ n ≤ 105
1 ≤ si, ki ≤ 109
Выходные данные

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

Пример
Входные данные
6
8 8
5 9
9 4
3 9
3 1
7 5
Выходные данные
42