Problem Description

I know that some of my classmates are looking at the Chinese remainder theorem recently, and this theorem itself is relatively simple:

Assuming that the m1,m2,..., Mk 22, the following equation group is the same:

X≡A1 (mod M1)

X≡A2 (mod m2)

...

X≡ak (MoD mk)

There is a unique solution within the 0<=<m1m2...mk.

Kee Mi=m/mi (1<=i<=k), because (mi,mi) = 1, so there are two integers pi,qi meet Mipi+miqi=1, if you remember Ei=mi/pi, then there will be:

Ei≡0 (mod MJ), j!=i

Ei≡1 (mod MJ), j=i

Obviously, E1a1+e2a2+...+ekak is a solution of the equations, and this solution adds and subtract an integer multiple of M to get the least nonnegative integer solution.

This is the Chinese remainder theorem and its solution process.

Now there is a problem with this:

A positive integer n divided by M1 (m1-a), divided by M2 remainder (m2-a), divided by M3 remainder (m3-a), in short, divided by MI remainder (mi-a), where (a<mi<100 i=1,2,... I) to find the minimum number of conditions to satisfy.

Input

The input data contains multiple sets of test instances, the first line of each instance being two integers I (1<i<10) and a, where I represents the number of m, the meaning of a as described above, followed by a line of I integer M1,m1 ... Mi,i=0 and a=0 end input, not processed.

Output

For each test instance, output the minimum number of satisfied conditions in a row. The output for each instance takes up one row.

Sample Input

2 12 30 0

Sample Output

5

The code is as follows:

#include <iostream>using namespace Std;long long gcd (long long A, long long B) //Request Greatest common divisor { long long t;
if (A < b) { t=a; a=b; b=t; } if (b = = 0) return A; t= a%b; while (t!= 0) { a=b; b=t; t=a%b; } return b;} int main () { long long i,j,a,sum; int str[10]; while (Cin>>i>>a) { if (i==0| | a==0) break ; Sum=1; for (j=0; j<i; j + +) { cin>>str[j]; Sum= (Sum*str[j])/GCD (Sum,str[j]); The least common multiple of two numbers = the product of two numbers/greatest common divisor } sum-=a; Originally Yu (m-a) But at this time is the M to calculate, after the end should be subtracted from a cout<<sum<<endl; } return 0;}

Operation Result:

yt15-hdu-the least common multiple of the remainder theorem in China