"""
Вася делает тест по математике: вычисляет значение функций в различных точках.
Стоит отличная погода, и друзья зовут Васю гулять.
Но мальчик решил сначала закончить тест и только после этого идти к друзьям.
К сожалению, Вася пока не умеет программировать. Зато вы умеете.
Помогите Васе написать код функции, вычисляющей y = ax2 + bx + c.
Напишите программу, которая будет по коэффициентам a, b, c и числу x выводить
значение функции в точке x.

Формат ввода
На вход через пробел подаются числа a, x, b, c.

Формат вывода
Выведите одно число — значение функции в точке x.
"""


def function_calculate(a):
    a = list(map(int, input().split()))
    y = a[0]*(a[1]*a[1])+a[2]*a[1]+a[3]
    print(y)


"""
Алла придумала такую онлайн-игру: игрок нажимает на кнопку, и на экране 
появляются три случайных числа. 
Если все три числа оказываются одной чётности, игрок выигрывает.

Напишите программу, которая по трём числам определяет, выиграл игрок или нет.

Формат ввода
В первой строке записаны три случайных целых числа a, b и c. Числа не 
превосходят 109 по модулю.

Формат вывода
Выведите «WIN», если игрок выиграл, и «FAIL» в противном случае.
"""


def even_not_even(a):
    a = list(map(int, input().split()))
    if (a[0] % 2 == 0 and a[1] % 2 == 0 and a[2] % 2 == 0)\
            or (a[0] % 2 != 0 and a[1] % 2 != 0 and a[2] % 2 != 0):
        print("WIN")
    else:
        print("FAIL")


"""
Метеорологическая служба вашего города решила исследовать погоду новым способом. 
Под температурой воздуха в конкретный день будем понимать максимальную 
температуру в этот день. 
Назовём хаотичностью погоды за n дней количество дней, в которые температура 
строго больше, 
чем в день до (если такой существует) и в день после текущего 
(если такой существует). 
Например, если за 5 дней максимальная температура воздуха составляла 
[1, 2, 5, 4, 8] градусов, 
то хаотичность за этот период равна 2: в 3-й и 5-й дни выполнялись описанные 
условия. 
Определите по ежедневным показаниям температуры хаотичность погоды за этот 
период.

Заметим, что если если число показаний n=1, то единственный день будет 
хаотичным.

Формат ввода
В первой строке дано число n –— длина периода измерений в днях, 1 ≤ n≤ 105. 
Во второй строке даны n целых чисел –— значения температуры в каждый из n дней. 
Значения температуры не превосходят 273 по модулю.

Формат вывода
Выведите единственное число — хаотичность за данный период.
"""


def weather(n, b):
    n = int(input())
    b = list(map(int, input().split()))
    delta_max = 0
    if n == 1:
        delta_max = 1
    for i in range(1, n):
        if (i == 1 and b[i] < b[i-1]) \
                or (b[i - 2] < b[i-1] > b[i]) \
                or (b[i] > b[i-1] and i == n-1):
            delta_max += 1
    print(delta_max)


"""
Чтобы подготовиться к семинару, Гоше надо прочитать статью по эффективному 
менеджменту. Так как Гоша хочет спланировать день заранее, 
ему необходимо оценить сложность статьи.

Он придумал такой метод оценки: берётся случайное предложение из текста и в 
нём ищется самое длинное слово. Его длина и будет условной сложностью статьи.

Помогите Гоше справиться с этой задачей.

Формат ввода
В первой строке дана длина текста L (L ≤ 105).

В единственной строке записан текст, состоящий из строчных латинских букв и 
пробелов. Слово —– последовательность букв, не разделённых пробелами. 
Пробелы могут стоять в самом начале строки и в самом её конце.

Формат вывода
В первой строке выведите самое длинное слово. Во второй строке выведите его 
длину. Если подходящих слов несколько, выведите то, которое встречается раньше.
"""


def longest_word(text_length, text):
    text_length = int(input())
    text = list(input().split())
    longest = ''
    length = 0
    for i in range(0, len(text)):
        if len(text[i]) > int(length):
            longest = text[i]
            length = len(text[i])
    print(longest)
    print(length)


"""
Помогите Васе понять, будет ли фраза палиндромом.
Учитываются только буквы и цифры, заглавные и строчные буквы считаются 
одинаковыми.

Решение должно работать за O(N), где N — длина строки на входе.

Формат ввода
В единственной строке записана фраза или слово. Буквы могут быть только 
латинские. Длина текста не превосходит 20000 символов.

Формат вывода
Выведите «True», если фраза является палиндромом, и «False», если не является.
"""


import re


def palindrom(phrase):
    phrase = re.sub('\W+', '', input()).lower()
    if phrase == phrase[::-1]:
        return print('True')
    return print('False')


"""
Вася реализовал функцию, которая переводит целое число из десятичной системы в 
двоичную. Но, кажется, она получилась не очень оптимальной.

Попробуйте написать более эффективную программу. Не используйте встроенные 
средства языка по переводу чисел в бинарное представление.

Формат ввода
На вход подаётся целое число в диапазоне от 0 до 10000.

Формат вывода
Выведите двоичное представление этого числа.
"""


def number2bin(a):
    a = int(input())
    b = ''
    while a > 0:
        b = str(a % 2) + b
        a = a // 2
    print(b)


"""
Тимофей спросил у Гоши, умеет ли тот работать с числами в двоичной системе 
счисления. Он ответил, что проходил это на одной из первых лекций по 
информатике. Тимофей предложил Гоше решить задачку. 
Два числа записаны в двоичной системе счисления. Нужно вывести их сумму, 
также в двоичной системе. Встроенную в язык программирования возможность 
сложения двоичных чисел применять нельзя.

Решение должно работать за O(N), где N –— количество разрядов максимального 
числа на входе.

Формат ввода
Два числа в двоичной системе счисления, каждое на отдельной строке. 
Длина каждого числа не превосходит 10 000 символов.

Формат вывода
Одно число в двоичной системе счисления.
"""


def bin_sum(num1, num2):
    num1 = [*map(int, input())]
    num2 = [*map(int, input())]
    num1 = num1[::-1]
    num2 = num2[::-1]
    size = max(len(num1), len(num2))
    num1 += [0] * (size - len(num1))
    num2 += [0] * (size - len(num2))
    overflow = 0
    res = []
    for obj in zip(num1, num2):
        value = obj[0] + obj[1] + overflow
        overflow = value // 2
        res.append(value % 2)
    if overflow == 1:
        res.append(1)
    res = res[::-1]
    print(''.join(map(str, res)))


"""
Вася на уроке математики изучил степени. Теперь он хочет написать программу, 
которая определяет, будет ли положительное целое число степенью четвёрки.

Подсказка: степенью четвёрки будут все числа вида 4n, где n – целое 
неотрицательное число.

Формат ввода
На вход подаётся целое число в диапазоне от 1 до 10000.

Формат вывода
Выведите «True», если число является степенью четырёх, «False» –— в 
обратном случае
"""


def ifRateOf4(a):
    a = int(input())
    if a == 1 or a == 4:
        return print(True)
    while a > 0:
        b = a % 4
        if b != 0:
            return print(False)
        a = a // 4
        if a == 4:
            return print(True)
    return print(False)


"""
Тимофей готовит доклад ко дню открытых дверей кафедры Теории чисел. 
Он собирается рассказать про Основную теорему арифметики. В соответствии с 
этой теоремой, любое число раскладывается на произведение простых множителей 
единственным образом –— с точностью до их перестановки.

Например, число 8 можно представить как 2 × 2 × 2.

Число 50 –— как 2 × 5 × 5 (или 5 × 5 × 2, или 5 × 2 × 5). Три варианта 
отличаются лишь порядком следования множителей.

Разложение числа на простые множители называется факторизацией числа.

Факторизацию в уме делать сложно, поэтому помогите Тимофею написать для этого 
программу.

Формат ввода
В единственной строке дано число n (2 ≤ n ≤ 109), которое нужно факторизовать.

Формат вывода
Выведите в порядке неубывания простые множители, на которые раскладывается число n.
"""


def factorization(number):
    number = int(input())
    i = 2
    result = []
    while i <= math.sqrt(number):
        if number % i == 0:
            number = number // i
            result.append(i)
        else:
            i += 1
    if number != 1:
        result.append(number)
    result = ' '.join(map(str, result))
    print(result)


"""
Вася просил Аллу помочь решить задачу. На этот раз по информатике.

Для неотрицательного целого числа X списочная форма –— это массив его цифр слева направо. К примеру, для 1231 списочная форма будет [1,2,3,1]. На вход подается количество цифр числа Х, списочная форма неотрицательного числа Х и неотрицательное число K. Числа К и Х не превосходят 10000.

Нужно вернуть списочную форму числа X + K.

Формат ввода
В первой строке — длина списочной формы числа X. На следующей строке — сама списочная форма с цифрами записанными через пробел.

В последней строке записано число K.

Формат вывода
Выведите списочную форму числа X+K.
"""


def list_form(length, a, b):
    length = int(input())
    a = int(re.sub('\W+', '', input()))
    b = int(input())
    res = list(map(int, str(a+b)))
    result =' '.join(map(str, res))
    print(result)


"""
Васе очень нравятся задачи про строки, поэтому он придумал свою. Есть 2 строки 
s и t, состоящие только из строчных букв. Строка t получена перемешиванием букв 
строки s и добавлением 1 буквы в случайную позицию. Нужно найти добавленную 
букву.

Формат ввода
На вход подаются строки s и t, разделенные переносом строки. Длины строк не 
превосходят 1000 символов. Строки не бывают пустыми.

Формат вывода
Выведите лишнюю букву.
"""


def list_compare(text1, text2):
    text1 = list(map(str, input()))
    text2 = list(map(str, input()))

    for item in text1:
        if item in text2:
            text2.remove(item)
    print(''.join(text2))
