CF1848E.Vika and Stone Skipping

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

In Vika's hometown, Vladivostok, there is a beautiful sea.

Often you can see kids skimming stones. This is the process of throwing a stone into the sea at a small angle, causing it to fly far and bounce several times off the water surface.

Vika has skimmed stones many times and knows that if you throw a stone from the shore perpendicular to the coastline with a force of ff , it will first touch the water at a distance of ff from the shore, then bounce off and touch the water again at a distance of f1f - 1 from the previous point of contact. The stone will continue to fly in a straight line, reducing the distances between the points where it touches the water, until it falls into the sea.

Formally, the points at which the stone touches the water surface will have the following coordinates: ff , f+(f1)f + (f - 1) , f+(f1)+(f2)f + (f - 1) + (f - 2) , ... , f+(f1)+(f2)++1f + (f - 1) + (f - 2) + \ldots + 1 (assuming that 00 is the coordinate of the shoreline).

Once, while walking along the embankment of Vladivostok in the evening, Vika saw a group of guys skipping stones across the sea, launching them from the same point with different forces.

She became interested in what is the maximum number of guys who can launch a stone with their force fif_i , so that all fif_i are different positive integers, and all nn stones touched the water at the point with the coordinate xx (assuming that 00 is the coordinate of the shoreline).

After thinking a little, Vika answered her question. After that, she began to analyze how the answer to her question would change if she multiplied the coordinate xx by some positive integers x1x_1 , x2x_2 , ... , xqx_q , which she picked for analysis.

Vika finds it difficult to cope with such analysis on her own, so she turned to you for help.

Formally, Vika is interested in the answer to her question for the coordinates X1=xx1X_1 = x \cdot x_1 , X2=X1x2X_2 = X_1 \cdot x_2 , ... , Xq=Xq1xqX_q = X_{q-1} \cdot x_q . Since the answer for such coordinates can be quite large, find it modulo MM . It is guaranteed that MM is prime.

输入格式

The first line of the input contains three integers xx ( 1x1091 \le x \le 10^9 ), qq ( 1q1051 \le q \le 10^5 ) and MM ( 100M2109100 \le M \le 2 \cdot 10^9 ) — the initial coordinate for which Vika answered the question on her own, the number of integers xix_i by which Vika will multiply the initial coordinate and prime module MM .

The second line of the input contains qq integers x1,x2,x3,,xqx_1, x_2, x_3, \ldots, x_q ( 1xi1061 \le x_i \le 10^6 ) — the integers described in the statement.

输出格式

Output qq integers, where the ii -th number corresponds to the answer to Vika's question for the coordinate XiX_i . Output all the answers modulo MM .

输入输出样例

  • 输入#1

    1 2 179
    2 3

    输出#1

    1
    2
  • 输入#2

    7 5 998244353
    2 13 1 44 179

    输出#2

    2
    4
    4
    8
    16
  • 输入#3

    1000000000 10 179
    58989 49494 8799 9794 97414 141241 552545 145555 548959 774175

    输出#3

    120
    4
    16
    64
    111
    43
    150
    85
    161
    95

说明/提示

In the first sample, to make the stone touch the water at a point with coordinate 22 , it needs to be thrown with a force of 22 . To make the stone touch the water at a point with coordinate 23=62 \cdot 3 = 6 , it needs to be thrown with a force of 33 or 66 .

In the second sample, you can skim a stone with a force of 55 or 1414 to make it touch the water at a point with coordinate 72=147 \cdot 2 = 14 . For the coordinate 1413=18214 \cdot 13 = 182 , there are 44 possible forces: 2020 , 2929 , 4747 , 182182 .

首页