#P5004. 「长乐集训 2017 Day2」冒泡排序

「长乐集训 2017 Day2」冒泡排序

Description

冒泡排序是一种简单的排序方式,其过程如下:

1 1 n n 的序列进行冒泡排序:


counter = 0

While A 不是有序的

	counter = counter + 1

	For i = 1 to (n - 1)

		If A[i] > A[i + 1]

			Then Swap(A[i], A[i + 1])

		End If

	End For

End While

现在给定一个排列 A A ,求冒泡排序几轮后序列会有序。

Input Format

仅一行五个整数 n,S,B,C,D n, S, B, C, D

n n 表示序列长度,A A 数组由以下方式生成:


For i = 1 to n

	A[i] = i

	S = (S * B + C) mod D

	Swap(A[i], A[(S mod i) + 1])

End For

Output Format

仅一行一个整数表示答案

Sample

样例输入

4 5 7 9 13

样例输出

2

Hint

30% 30 \% 的数据,n103 n \leq 10 ^ 3

50% 50 \% 的数据,n105 n \leq 10 ^ 5

70% 70 \% 的数据,n106 n \leq 10 ^ 6

100% 100 \% 的数据,$ 1 \leq n \leq 3 \times 10 ^ 7 , 0 \leq S, B, C < D \leq 10 ^ 9 + 7 $