Операции по модулю m

Продолжая исследования в области видеокарт, команда столкнулась с необходимостью выполнить несколько вычислений для каждой пары чисел. Сейчас идёт этап тестирования кода, поэтому вас просят написать программу, которая будет проверять сложение, вычитание и умножение чисел по модулю m.

Даны два списка целых чисел и . Нужно вычислить:

Поскольку на GPU удобнее выполнять похожие операции, результаты сложения следует вывести первыми, за ними результаты вычитания, и в конце – результаты умножения.

Входные данные

В первой строке входных данных содержатся два целых числа n (1 ≤ n ≤ 100000) и m (1 ≤ m ≤ ).

Во второй строке записаны n целых чисел через пробел ().

В следующей строке указаны n целых чисел через пробел ().

Выходные данные

В первой строке выходных данных необходимо вывести все результаты сложения через пробел .

Во второй строке – все результаты вычитания через пробел .

В последней строке – все результаты умножения через пробел .

Примеры

Входные данные

Выходные данные

3 3 1 2 1 3 4 1

1 0 2 1 1 0 0 2 1

Пояснение

  1. Сложение (первая строка)

  2. Вычитание (вторая строка)

  3. Умножение (третья строка)

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 3 MB

To check your solution you need to sign in
Sign in to continue