Ланцюг
Розглянемо ізотетичний прямокутник (де "ізотетичний" означає "зі сторонами, паралельними осям координат"), лівий нижній кут якого має координати (0, 0), а правий верхній — (x_max, y_max). Всередині цього прямокутника знаходяться N точок: P_1 (x_1, y_1), P_2 (x_2, y_2), …, P_N (x_N, y_N), де (0 < x_i < x_max, 0 < y_i < y_max). Розглянемо ламані SP_i1P_i2...P_ikF, які задовольняють наступні умови:
Всі внутрішні вершини P_ij є деякими з даних точок; кількість вибраних точок може бути будь-якою 0 ≤ k ≤ N;
Початкова вершина S (x_S, y_S) розташована на лівій стороні прямокутника або поза ним зліва (x_S ≤ 0, 0 ≤ y_S ≤ y_max);
Кінцева вершина F(x_F, y_F) розташована на правій стороні прямокутника або поза ним справа (x_F ≥ x_max, 0 ≤ y_F ≤ y_max).
Назвемо таку ламану рівнодовжиною, якщо і тільки якщо евклідові довжини всіх відрізків рівні (|SP_i1| = |P_i1P_i2| = ... = |P_ikF|). Легко побачити, що існує принаймні одна рівнодовжина ламана для будь-якого прямокутника і будь-якого набору даних точок: це відрізок SF з координатами S(0, 0), F(x_max, 0), який задовольняє всі умови.
Ваше завдання — написати програму, яка знайде рівнодовжину ламану з мінімальною довжиною відрізка. Легко побачити, що квадрат (другий ступінь) мінімальної довжини завжди є цілим числом, тому програма повинна вивести квадрат довжини у вигляді цілого числа.
Вхідні дані
Перший рядок вхідних даних містить три цілі числа, розділені пробілами: x_max y_max N — координати правого верхнього кута і кількість даних точок. Кожен з наступних N рядків містить два цілі числа, розділені пробілами: x_i y_i — координати даної точки.
Обмеження: 1 ≤ N ≤ 1000; 5 ≤ x_max, y_max ≤ 32000; для всіх 1 ≤ i ≤ N, 0 < x_i < x_max, 0 < y_i < y_max.
Вихідні дані
Ваша програма повинна вивести рівно одне ціле число: квадрат мінімально можливої довжини відрізка серед рівнодовжинних ламаних.
Примітка: Ми можемо побудувати деякі рівнодовжинні ламані з довжиною (наприклад: (–2, 6), (2, 8), (6, 6), (6+, 6)), але не можемо побудувати жодної рівнодовжинної ламаної для менших довжин.