Фрактальний торт
Сьогодні Федір святкує свій день народження, і, пока гості ще не прийшли, він прикрашає святковий торт шоколадним кремом, але особливим чином. Спочатку у Федора є квадратний торт, розділений на 4 рівних квадрати із коржів білого кольору. Федір називає "фракталізацією" наступні дії - групуємо всі маленькі квадрати торту у групи 2x2 так, щоб не залишилось незгрупованих фрагментів, після чого кожен маленький квадрат ділимо на 4 рівних квадрати і заповнюємо шоколадом 4 квадратики всередині кожної групи. Така дія повторюється послідовно N разів. Ілюстрація внизу показує першу "фракталізацію" і торт після п'ятої:
Тепер Федір хоче нарізати гостям шматки торту з красивими візерунами, але йому важко, дивлячись на торт у цілому, оцінити візерунок його частини. Напишіть програму, яка покаже візерунок заданої прямокутної частини.
Вхідні дані
У єдиному рядку записано п'ять цілих невід'ємних чисел N, R_1, R_2, C_1, C_2. N – кількість ітерацій вищеописаних змін, проведених над тортом (N < 20), R_1 і R_2 – це відповідно початковий і кінцевий рядки, C_1 і C_2 – початковий і кінцевий стовбчики вирізаного шматка. Діють обмеження: R_1 ≤ R_2, C_1 ≤ C_2; 0 ≤ R_2 - R_1, C_2 - C_1 < 100; 0 ≤ R_1, R_2, C_1, C_2 < 2N + 1.
Вихідні дані
Очікується R_2 - R_1 + 1 рядків по C_2 - C_1 + 1 символів у кожному. Якщо відповідний квадратик залито шоколадом, слід вивести 1, у протилежному випадку виведіть 0.