У першій арці популярної манги "Hunter x Hunter" головний герой Ґон та його друзі беруть участь у іспиті на мисливця. На його четвертому етапі кожен з учасників отримує значок із унікальним номером від до N - 1. Крім того, у чашу кладуть папірців, знову з унікальними номерами від до N - 1. Кожен учасник витягує з чаші папірць (і залишає його собі); папірць, який він отримав містить число T_i, номер його цілі. Відомо, що ніхто не отримав папірць з власним номером, тобто T_i \neq i для кожного .
Після цього кандидатів-мисливців залишають на острові Зевіль на тиждень; там вони можуть викрасти значки одне одного. В кінці тижня закінчується четвертий етап іспиту, і записується хто має які значки. Оцінка учасника — це сума балів, за кожен із значків з якими він залишився. Значки з номерами та T_i можуть принести учаснику балів кожен, тоді як усі інші значки можуть принести йому лише один бал. Учасники, що мають щонайменше балів, проходять етап успішно, тоді як усі інші зазнають невдачі.
Очевидно, що неможливо кожному перейти до наступного етапу. Вам цікаво, який є найкращий можливий результат, беручи до уваги, що ви більш прив'язані до одних учасників і менше до інших. Більш конкретно, до учасника ви прив'язані з L_i кількістю прив'язаності (у деяких одиницях виміру). Ви хочете дізнатися максимально можливе значення суми всіх L_m, де це кількість учасників, яким вдалося отримати щонайменше балів.
Проблема в тому, що учасників багато, а отже, багато можливих комбінацій, тому вам дуже важко знайти максимальне значення самостійно. На щастя, ви живете в 21 столітті, і перед вами сучасний комп'ютер. Ви вирішили, що найкраще буде написати програму, яка знаходить максимально можливе значення суми, що описана вище, за вхідними даними.
У першому рядку стандартного вводу міститься два натуральних числа: та — кількість учасників та кількість балів, які отримує учасник за власний значок та значок його цілі. Кожен з наступних рядків містить два цілих невід'ємних числа: T_i та L_i — номер цілі -го учасника, а також ваша прив'язаність до учасника.
В єдиному рядку стандартного виводу слід надрукувати одне ціле невід'ємне число: максимально можливу сумарну кількість прив'язаності, до учасників, яким вдалося отримати щонайменше балів.
Приклад 1
Приклад 2
Учасниками що пройшли четвертий етап є 1, 4 та 6. Ось одне з можливих рішень: учасник 1 завершує етап із значками 1 та 6, учасник 4 — із значками 0, 4 та 7 і учасник 6 — із значками 2, 3 та 5. Сума: L_1 + L_4 + L_6 = 111 + 105 + 108 = 324.
Для того, щоб отримати бали за деяку підзадачу, ваше рішення повинне пройти всі тести підзадачі.
Підзадачі наступні:
Підзадача | Бали | Додаткові обмеження | |
1 | 10 | 10 | Немає |
2 | 15 | 700 | T_{P_j} = P_{(j+1) \bmod N} та L_{P_{N-1}} = 0 |
3 | 15 | 10^4 | T_{P_j} = P_{(j+1) \bmod N} та L_{P_{N-1}} = 0 |
4 | 10 | 700 | T_{P_j} = P_{(j+1) \bmod N} |
5 | 10 | 10^4 | T_{P_j} = P_{(j+1) \bmod N} |
6 | 20 | 700 | Немає |
7 | 20 | 10^4 | Немає |
Тут — довільна перестановка чисел від до N - 1, де P_0 = 0.