Долгожданная вечеринка
Сакурако организует вечеринку для своих друзей после их экзамена по математике. У него всего друзей. Настроение -го друга представлено целым числом , а настроение Сакурако равно нулю.
Настроение вечеринки в любой момент времени рассчитывается как побитовая XOR настроений всех друзей, которые уже пришли. Друзья приходят на вечеринку по одному, и никто не приходит одновременно. Для любого конкретного порядка прихода Сакурако может вычислить общую сумму настроения вечеринки на каждом этапе.
Например, если у Сакурако есть три друга с настроениями соответственно, и они приходят на вечеринку в порядке , то сумма настроений на каждом этапе будет равна .
Однако, поскольку Сакурако не знает точный порядок, в котором его друзья придут, он хочет узнать общую сумму настроений для всех возможных перестановок их порядка прихода.
Формально, Сакурако хочет вычислить:
где — это группа всех перестановок длины .
Кроме того, Сакурако иногда интересуется конкретными сегментами своих друзей. Он хочет знать общую сумму настроений, если на вечеринку приходят только друзья с настроениями . У него есть таких вопросов, и он просит вас ответить на них.
Поскольку эта сумма может быть слишком большой, найдите её по модулю .
Входные данные
Первая строка содержит два целых числа — количество друзей и количество вопросов.
Вторая строка содержит целых чисел — настроения друзей Сакурако.
Каждая из следующих строк содержит два целых числа , описывающих вопрос.
Выходные данные
Для каждого вопроса выведите ответ по модулю .
Примеры
Примечание
В первом тестовом примере все друзья приходят на вечеринку. Существует возможных порядков их прихода:
: сумма настроений на каждом этапе равна ;
: сумма настроений на каждом этапе равна ;
: сумма настроений равна ;
: сумма настроений равна ;
: сумма настроений равна ;
: сумма настроений равна .
Таким образом, общая сумма настроений равна .
Оценивание
( баллов): ;
( баллов): ;
( баллов): ;
( баллов): ;
( баллов): ;
( баллов): ;
( балла): без дополнительных ограничений.