CF166D Shoe Store

Description

The warehouse in your shop has $ n $ shoe pairs. Each pair is characterized by two integers: its price $ c_{i} $ and its size $ s_{i} $ . We know that on this very day all numbers $ s_{i} $ are different, that is, there is no more than one pair of each size. The shop has $ m $ customers who came at the same time. The customer number $ i $ has $ d_{i} $ money and the size of his feet equals $ l_{i} $ . The customer number $ i $ can buy the pair number $ j $ , if $ c_{j}

Input Format

The first input line contains the only integer $ n $ ( $ 1

Output Format

In the first line print the only integer — the maximum profit you can get from selling shoes. In the second line print an integer $ k $ — the number of shoe pairs you will sell. In the following $ k $ lines print the descriptions of the sold pairs — two space-separated integers where the first number is the customer's number and the second number is the number of the shoes the customer will buy. You can print pairs of numbers "the customer's number and the shoes' number" in any order, the customers and the pairs of shoes are numbered starting from $ 1 $ in the order in which they are given in the input. If there are several optimal answers, you are allowed to print any of them. Please do not use the %lld specificator to read or write 64-bit numbers in С++. It is preferred to use the cin, cout streams or the %I64d specificator instead.