Двофарбування
Дано граф, визначте, скількома способами його можна розфарбувати, використовуючи не більше двох кольорів. Жодне ребро не повинно з'єднувати вершини одного кольору.
Вхідні дані
Перша строка вхідних даних містить число T — кількість тестових випадків. Кожен тестовий випадок починається з рядка, що містить два цілі числа V (1 ≤ V ≤ 30) та E (0 ≤ E ≤ 1000). Кожен з наступних E рядків містить два цілі числа a та b (0 ≤ a < V, 0 ≤ b < V), що вказують на існування двонаправленого ребра між a та b. Не буде жодних самопетель або дубльованих ребер. Останній рядок вхідних даних буде порожнім.
Вихідні дані
Для кожного тестового випадку виведіть кількість способів, якими можна розфарбувати граф, використовуючи лише два кольори. Якщо граф неможливо розфарбувати не більше ніж двома кольорами, виведіть -1.