На багатопроцесорній машині виконуються дві програми. Кожна програма (i = 1, 2) складається з процедур, які пронумеровані від до і повинні виконуватися послідовно (у порядку 1, \ldots, N). Процедуру ідентифікує пара , де i = 1, 2 — це номер програми, а 1 \leq j \leq N — номер процедури всередині програми . Процедуру можна виконати лише на процесорі P(i, j), і її виконання триває D(i, j) секунд. Потрібно розпланувати виконання процедур обох програм так, щоб момент закінчення останньої процедури (у будь-якій програмі) був мінімальним; цей момент називається makespan (тривалість виконання). Обидві програми доступні для планування з часу .
Планування повинно дотримуватися наступних правил:
Як тільки процедура розпочинає виконання на процесорі P(i, j), її не можна переривати до завершення.
Кілька процедур не можуть виконуватися одночасно на одному процесорі, але процедури можуть виконуватися паралельно на різних процесорах.
Виконання процедури (2 \leq j \leq N) починається або в момент завершення (i, j-1), або будь-коли після цього.
Якщо процедура розпочинається у момент часу , вона завершується у момент tm + D(i, j).
Напишіть програму, яка для заданих процедур обох програм знаходить мінімальний makespan.
Перший рядок містить — кількість тестів.
Перший рядок кожного тесту містить число (1 \leq N \leq 300) — кількість процедур у кожній програмі. Далі йдуть рядків для першої програми; -й з цих рядків містить два цілих числа через пробіл: P(1, j) та D(1, j). Наступні рядків описують другу програму у тому ж форматі: -й рядок містить P(2, j) та D(2, j). 1 \leq P(i, j) \leq 10, 1 \leq D(i, j) \leq 15000 (i = 1, 2; 1 \leq j \leq N).
Зверніть увагу, що можливо P(i, j) = P(k, l), тобто процедури та (k, l) не можуть виконуватись в один і той же час. Якщо i = k, це не має значення, оскільки вони належать одній програмі і повинні виконуватись послідовно.
У вихідних даних повинно бути рівно рядків, у кожному з яких одне число — мінімальний makespan для відповідного тесту. Виводьте відповіді у порядку, в якому дано тести (тобто -й рядок відповідає -му тесту).
Приклад 1