Задачі
Теорія графів
Теорія графів
\includegraphics{https://static.e-olymp.com/content/fc/fca8e2227f63527071e0abc69e988bdb468d454c.jpg}
\includegraphics{https://static.e-olymp.com/content/ec/ec680bd46355e4af82a251fef70d4b6432fd4623.jpg}
Сергійко вивчає теорію графів. Нещодавно він дізнався про радіус та діаметр графу. Розглянемо неорієнтований незважений зв'язний граф \textbf{G}, позначимо довжину найкоротшого шляху між вершинами \textbf{s} та \textbf{t} через \textbf{ρ(s, t)}. Радіус \textbf{r(G)} графу визначається як . Діаметр \textbf{d(G)} графу визначається як . Інтуїтивно діаметр графа визначається як найбільша відстань між двома вершинами, а радіус як найбільша відстань, яку Ви змушені будете пройти із обраної Вами центральної вершини.
Професор довів на лекції, що \textbf{d(G)/2} ≤ \textbf{r(G)} ≤ \textbf{d(G)} для довільного графу \textbf{G}. Тепер Сергійко бажає встановити, чи дійсно для довільних значень \textbf{d} та \textbf{r} таких, що \textbf{d/2} ≤ \textbf{r} ≤ \textbf{d}, існує граф \textbf{G} такий що \textbf{d(G) = d} та \textbf{r(G) = r}. Допоможіть йому в цьому розібратися.
\InputFile
Два цілих числа \textbf{d} та \textbf{r} (\textbf{d/2} ≤ \textbf{r} ≤ \textbf{d} ≤ \textbf{50}, \textbf{1} ≤ \textbf{r}).
\OutputFile
Якщо існує граф із заданими радіусом та діаметром, то у першому рядку слід вивести "\textbf{YES}". Другий рядок повинен містити два цілі числа: \textbf{n} (\textbf{2} ≤ \textbf{n} ≤ \textbf{400}) та \textbf{m} - кількість вершин та кількість ребер. Кожний із наступних \textbf{m} рядків містить два цілі числа - номера вершин, сполучені ребром. Граф не повинен містити петель та кратних ребер.
Якщо шуканого графу не існує, то вивести "\textbf{NO}".
Вхідні дані #1
1 1
Вихідні дані #1
YES 2 1 1 2