import java.io.*;
import java.util.*;
public class Main {
private static int[] st;
InputReader in
= new InputReader
(System.
in); int n = in.nextInt();
int k = in.nextInt();
int[] a = new int[n+1];
boolean found = false;
boolean fnd = false;
for(int i=1;i<=n;i++){
a[i] = in.nextInt();
if(a[i]%k==0){
if(a[i]==k){
fnd = true;
}
found = true;
}
}
if(fnd ==true){
pw.println("1");
}
else if(found==false){
pw.println("-1");
}
else{
constructSegmentTree(a);
int min = 1000000009;
for(int i=1;i<n;i++){
if(a[i]%k!=0){
continue;
}
int low = i+1;
int high = n;
int mid = 0;
int note = 0;
while(true){
mid = low + (high-low)/2;
if(findRangeGcd(i, mid, a)>k){
low = mid;
}
else if(findRangeGcd(i, mid, a)==k){
high = mid;
note = mid;
break;
}
else{
high = mid;
}
if(Math.
abs(high
-low
)<=1){ if(findRangeGcd(i, low, a)==k){
note = low;
break;
}
else if(findRangeGcd(i, high, a)==k){
note = high;
break;
}
else{
break;
}
}
}
if(note!=0){
min
= Math.
min(min, note
- i
+ 1); }
}
if(min == 1000000009)
pw.println("-1");
else
pw.println(min);
}
pw.close();
}
public static int[] constructSegmentTree(int[] arr){
int height
= (int)Math.
ceil(Math.
log(arr.
length)/Math.
log(2)); int size
= 2*(int)Math.
pow(2, height
)-1; st = new int[size];
constructST(arr, 0, arr.length-1, 0);
return st;
}
public static int constructST(int[] arr, int ss, int se, int si){
if(ss==se){
st[si] = arr[ss];
return st[si];
}
int mid = ss+(se-ss)/2;
st[si] = gcd(constructST(arr, ss, mid, si*2+1),constructST(arr, mid+1, se, si*2+2));
return st[si];
}
private static int gcd(int a, int b) {
if(a<b){
int c = b;
b=a;
a=c;
}
if(b==0){
return a;
}
if(b==1)
return 1;
return gcd(b,a%b);
}
//Finding The gcd of given Range
public static int findRangeGcd(int ss, int se, int[] arr){
int n = arr.length;
if(ss<0 || se > n-1 || ss>se){
}
return findGcd(0, n-1, ss, se, 0);
}
public static int findGcd(int ss, int se, int qs, int qe, int si){
if(ss>qe || se < qs)return 0;
if(qs<=ss && qe>=se)return st[si];
int mid = ss+(se-ss)/2;
return gcd(findGcd(ss, mid, qs, qe, si*2+1),findGcd(mid+1, se, qs, qe, si*2+2));
}
static class InputReader {
private byte[] buf = new byte[8192];
private int curChar;
private int snumChars;
private SpaceCharFilter filter;
this.stream = stream;
}
public int snext() {
if (snumChars == -1)
throw new InputMismatchException();
if (curChar >= snumChars) {
curChar = 0;
try {
snumChars = stream.read(buf);
throw new InputMismatchException();
}
if (snumChars <= 0)
return -1;
}
return buf[curChar++];
}
public int nextInt() {
int c = snext();
while (isSpaceChar(c))
c = snext();
int sgn = 1;
if (c == '-') {
sgn = -1;
c = snext();
}
int res = 0;
do {
if (c < '0' || c > '9')
throw new InputMismatchException();
res *= 10;
res += c - '0';
c = snext();
} while (!isSpaceChar(c));
return res * sgn;
}
public long nextLong() {
int c = snext();
while (isSpaceChar(c))
c = snext();
int sgn = 1;
if (c == '-') {
sgn = -1;
c = snext();
}
long res = 0;
do {
if (c < '0' || c > '9')
throw new InputMismatchException();
res *= 10;
res += c - '0';
c = snext();
} while (!isSpaceChar(c));
return res * sgn;
}
int c = snext();
while (isSpaceChar(c))
c = snext();
StringBuilder res = new StringBuilder();
do {
res.appendCodePoint(c);
c = snext();
} while (!isSpaceChar(c));
return res.toString();
}
public boolean isSpaceChar(int c) {
if (filter != null)
return filter.isSpaceChar(c);
return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
}
public interface SpaceCharFilter {
public boolean isSpaceChar(int ch);
}
}
}
aW1wb3J0IGphdmEuaW8uKjsKaW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewoJCglwcml2YXRlIHN0YXRpYyBpbnRbXSBzdDsKCQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncyl0aHJvd3MgSU9FeGNlcHRpb257CgkJUHJpbnRXcml0ZXIgcHcgPSBuZXcgUHJpbnRXcml0ZXIoU3lzdGVtLm91dCk7CiAgICAgICAgSW5wdXRSZWFkZXIgaW4gPSBuZXcgSW5wdXRSZWFkZXIoU3lzdGVtLmluKTsKICAgICAgICBpbnQgbiA9IGluLm5leHRJbnQoKTsKICAgICAgICBpbnQgayA9IGluLm5leHRJbnQoKTsKICAgICAgICBpbnRbXSBhID0gbmV3IGludFtuKzFdOwogICAgICAgIGJvb2xlYW4gZm91bmQgPSBmYWxzZTsKICAgICAgICBib29sZWFuIGZuZCA9IGZhbHNlOwogICAgICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKXsKICAgICAgICAJYVtpXSA9IGluLm5leHRJbnQoKTsKICAgICAgICAJaWYoYVtpXSVrPT0wKXsKICAgICAgICAJCWlmKGFbaV09PWspewogICAgICAgIAkJCWZuZCA9IHRydWU7CiAgICAgICAgCQl9CiAgICAgICAgCQlmb3VuZCA9IHRydWU7CiAgICAgICAgCX0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaWYoZm5kID09dHJ1ZSl7CiAgICAgICAgCXB3LnByaW50bG4oIjEiKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZWxzZSBpZihmb3VuZD09ZmFsc2UpewogICAgICAgIAlwdy5wcmludGxuKCItMSIpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBlbHNlewogICAgICAgIAljb25zdHJ1Y3RTZWdtZW50VHJlZShhKTsKICAgICAgICAJaW50IG1pbiA9IDEwMDAwMDAwMDk7CiAgICAgICAgCSBmb3IoaW50IGk9MTtpPG47aSsrKXsKICAgICAgICAJCSBpZihhW2ldJWshPTApewogICAgICAgIAkJCSBjb250aW51ZTsKICAgICAgICAJCSB9CiAgICAgICAgCQkgaW50IGxvdyA9IGkrMTsKICAgICAgICAJCSBpbnQgaGlnaCA9IG47CiAgICAgICAgCQkgaW50IG1pZCA9IDA7CiAgICAgICAgCQkgaW50IG5vdGUgPSAwOwogICAgICAgIAkJIHdoaWxlKHRydWUpewogICAgICAgIAkJCSBtaWQgPSBsb3cgKyAoaGlnaC1sb3cpLzI7CiAgICAgICAgCQkJIGlmKGZpbmRSYW5nZUdjZChpLCBtaWQsIGEpPmspewogICAgICAgIAkJCQkgbG93ID0gbWlkOwogICAgICAgIAkJCSB9CiAgICAgICAgCQkJIAogICAgICAgIAkJCSBlbHNlIGlmKGZpbmRSYW5nZUdjZChpLCBtaWQsIGEpPT1rKXsKICAgICAgICAJCQkJIGhpZ2ggPSBtaWQ7CiAgICAgICAgCQkJCSBub3RlID0gbWlkOwogICAgICAgIAkJCQkgYnJlYWs7CiAgICAgICAgCQkJIH0KICAgICAgICAJCQkgCiAgICAgICAgCQkJIGVsc2V7CiAgICAgICAgCQkJCSBoaWdoID0gbWlkOwogICAgICAgIAkJCSB9CiAgICAgICAgCQkJIAogICAgICAgIAkJCSBpZihNYXRoLmFicyhoaWdoLWxvdyk8PTEpewogICAgICAgIAkJCQkgaWYoZmluZFJhbmdlR2NkKGksIGxvdywgYSk9PWspewogICAgICAgIAkJCQkJIG5vdGUgPSBsb3c7CiAgICAgICAgCQkJCQkgYnJlYWs7CiAgICAgICAgCQkJCSB9CiAgICAgICAgCQkJCSAKICAgICAgICAJCQkJIGVsc2UgaWYoZmluZFJhbmdlR2NkKGksIGhpZ2gsIGEpPT1rKXsKICAgICAgICAJCQkJCSBub3RlID0gaGlnaDsKICAgICAgICAJCQkJCSBicmVhazsKICAgICAgICAJCQkJIH0KICAgICAgICAJCQkJIAogICAgICAgIAkJCQkgZWxzZXsKICAgICAgICAJCQkJCSBicmVhazsKICAgICAgICAJCQkJIH0KICAgICAgICAJCQkgfQogICAgICAgIAkJIH0KICAgICAgICAJCSAKICAgICAgICAJCSBpZihub3RlIT0wKXsKICAgICAgICAJCQkgbWluID0gTWF0aC5taW4obWluLCBub3RlIC0gaSArIDEpOwogICAgICAgIAkJIH0KICAgICAgICAJIH0KICAgICAgICAJIGlmKG1pbiA9PSAxMDAwMDAwMDA5KQogICAgICAgICAgICAgICAgIHB3LnByaW50bG4oIi0xIik7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAJICAgcHcucHJpbnRsbihtaW4pOwkgCiAgICAgICAgfQogICAgICAgIHB3LmNsb3NlKCk7Cgl9CgkKCXB1YmxpYyBzdGF0aWMgaW50W10gY29uc3RydWN0U2VnbWVudFRyZWUoaW50W10gYXJyKXsKICAgICAgICBpbnQgaGVpZ2h0ID0gKGludClNYXRoLmNlaWwoTWF0aC5sb2coYXJyLmxlbmd0aCkvTWF0aC5sb2coMikpOwogICAgICAgIGludCBzaXplID0gMiooaW50KU1hdGgucG93KDIsIGhlaWdodCktMTsgCiAgICAgICAgc3QgPSBuZXcgaW50W3NpemVdOwogICAgICAgIGNvbnN0cnVjdFNUKGFyciwgMCwgYXJyLmxlbmd0aC0xLCAwKTsKICAgICAgICByZXR1cm4gc3Q7CiAgICB9CiAgICAKICAgIHB1YmxpYyBzdGF0aWMgaW50IGNvbnN0cnVjdFNUKGludFtdIGFyciwgaW50IHNzLCBpbnQgc2UsIGludCBzaSl7CiAgICAgICAgaWYoc3M9PXNlKXsKICAgICAgICAgICAgc3Rbc2ldID0gYXJyW3NzXTsKICAgICAgICAgICAgcmV0dXJuIHN0W3NpXTsKICAgICAgICB9CiAgICAgICAgaW50IG1pZCA9IHNzKyhzZS1zcykvMjsKICAgICAgICBzdFtzaV0gPSBnY2QoY29uc3RydWN0U1QoYXJyLCBzcywgbWlkLCBzaSoyKzEpLGNvbnN0cnVjdFNUKGFyciwgbWlkKzEsIHNlLCBzaSoyKzIpKTsKICAgICAgICByZXR1cm4gc3Rbc2ldOwogICAgfQogICAgCiAgICBwcml2YXRlIHN0YXRpYyBpbnQgZ2NkKGludCBhLCBpbnQgYikgewogICAgCQogICAgCWlmKGE8Yil7CiAgICAJCWludCBjID0gYjsKICAgIAkJYj1hOwogICAgCQlhPWM7CiAgICAJfQoJCWlmKGI9PTApewoJCQlyZXR1cm4gYTsKCQl9CgkJCgkJaWYoYj09MSkKCQkJcmV0dXJuIDE7CgkKCQlyZXR1cm4gZ2NkKGIsYSViKTsKCX0KCgkvL0ZpbmRpbmcgVGhlIGdjZCBvZiBnaXZlbiBSYW5nZQogICAgcHVibGljIHN0YXRpYyBpbnQgZmluZFJhbmdlR2NkKGludCBzcywgaW50IHNlLCBpbnRbXSBhcnIpewogICAgICAgIGludCBuID0gYXJyLmxlbmd0aDsKICAgICAgICBpZihzczwwIHx8IHNlID4gbi0xIHx8IHNzPnNlKXsKICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBhcmd1bWVudHMiKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZpbmRHY2QoMCwgbi0xLCBzcywgc2UsIDApOwogICAgfQogICAgCiAgICBwdWJsaWMgc3RhdGljIGludCBmaW5kR2NkKGludCBzcywgaW50IHNlLCBpbnQgcXMsIGludCBxZSwgaW50IHNpKXsgCiAgICAgICAgaWYoc3M+cWUgfHwgc2UgPCBxcylyZXR1cm4gMDsKICAgICAgICBpZihxczw9c3MgJiYgcWU+PXNlKXJldHVybiBzdFtzaV07CiAgICAgICAgCiAgICAgICAgaW50IG1pZCA9IHNzKyhzZS1zcykvMjsKICAgICAgICByZXR1cm4gZ2NkKGZpbmRHY2Qoc3MsIG1pZCwgcXMsIHFlLCBzaSoyKzEpLGZpbmRHY2QobWlkKzEsIHNlLCBxcywgcWUsIHNpKjIrMikpOwogICAgfQogICAgCnN0YXRpYyBjbGFzcyBJbnB1dFJlYWRlciB7CgkJIAoJCXByaXZhdGUgSW5wdXRTdHJlYW0gc3RyZWFtOwoJCXByaXZhdGUgYnl0ZVtdIGJ1ZiA9IG5ldyBieXRlWzgxOTJdOwoJCXByaXZhdGUgaW50IGN1ckNoYXI7CgkJcHJpdmF0ZSBpbnQgc251bUNoYXJzOwoJCXByaXZhdGUgU3BhY2VDaGFyRmlsdGVyIGZpbHRlcjsKIAoJCXB1YmxpYyBJbnB1dFJlYWRlcihJbnB1dFN0cmVhbSBzdHJlYW0pIHsKCQkJdGhpcy5zdHJlYW0gPSBzdHJlYW07CgkJfQogCgkJcHVibGljIGludCBzbmV4dCgpIHsKCQkJaWYgKHNudW1DaGFycyA9PSAtMSkKCQkJCXRocm93IG5ldyBJbnB1dE1pc21hdGNoRXhjZXB0aW9uKCk7CgkJCWlmIChjdXJDaGFyID49IHNudW1DaGFycykgewoJCQkJY3VyQ2hhciA9IDA7CgkJCQl0cnkgewoJCQkJCXNudW1DaGFycyA9IHN0cmVhbS5yZWFkKGJ1Zik7CgkJCQl9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CgkJCQkJdGhyb3cgbmV3IElucHV0TWlzbWF0Y2hFeGNlcHRpb24oKTsKCQkJCX0KCQkJCWlmIChzbnVtQ2hhcnMgPD0gMCkKCQkJCQlyZXR1cm4gLTE7CgkJCX0KCQkJcmV0dXJuIGJ1ZltjdXJDaGFyKytdOwoJCX0KIAoJCXB1YmxpYyBpbnQgbmV4dEludCgpIHsKCQkJaW50IGMgPSBzbmV4dCgpOwoJCQl3aGlsZSAoaXNTcGFjZUNoYXIoYykpCgkJCQljID0gc25leHQoKTsKCQkJaW50IHNnbiA9IDE7CgkJCWlmIChjID09ICctJykgewoJCQkJc2duID0gLTE7CgkJCQljID0gc25leHQoKTsKCQkJfQogCgkJCWludCByZXMgPSAwOwogCgkJCWRvIHsKCQkJCWlmIChjIDwgJzAnIHx8IGMgPiAnOScpCgkJCQkJdGhyb3cgbmV3IElucHV0TWlzbWF0Y2hFeGNlcHRpb24oKTsKCQkJCXJlcyAqPSAxMDsKCQkJCXJlcyArPSBjIC0gJzAnOwoJCQkJYyA9IHNuZXh0KCk7CgkJCX0gd2hpbGUgKCFpc1NwYWNlQ2hhcihjKSk7CiAKCQkJcmV0dXJuIHJlcyAqIHNnbjsKCQl9CgkJCgkJcHVibGljIGxvbmcgbmV4dExvbmcoKSB7CgkJCWludCBjID0gc25leHQoKTsKCQkJd2hpbGUgKGlzU3BhY2VDaGFyKGMpKQoJCQkJYyA9IHNuZXh0KCk7CgkJCWludCBzZ24gPSAxOwoJCQlpZiAoYyA9PSAnLScpIHsKCQkJCXNnbiA9IC0xOwoJCQkJYyA9IHNuZXh0KCk7CgkJCX0KIAoJCQlsb25nIHJlcyA9IDA7CiAKCQkJZG8gewoJCQkJaWYgKGMgPCAnMCcgfHwgYyA+ICc5JykKCQkJCQl0aHJvdyBuZXcgSW5wdXRNaXNtYXRjaEV4Y2VwdGlvbigpOwoJCQkJcmVzICo9IDEwOwoJCQkJcmVzICs9IGMgLSAnMCc7CgkJCQljID0gc25leHQoKTsKCQkJfSB3aGlsZSAoIWlzU3BhY2VDaGFyKGMpKTsKIAoJCQlyZXR1cm4gcmVzICogc2duOwoJCX0KCQkKCQlwdWJsaWMgU3RyaW5nIHJlYWRTdHJpbmcoKSB7CgkJCWludCBjID0gc25leHQoKTsKCQkJd2hpbGUgKGlzU3BhY2VDaGFyKGMpKQoJCQkJYyA9IHNuZXh0KCk7CgkJCVN0cmluZ0J1aWxkZXIgcmVzID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKCQkJZG8gewoJCQkJcmVzLmFwcGVuZENvZGVQb2ludChjKTsKCQkJCWMgPSBzbmV4dCgpOwoJCQl9IHdoaWxlICghaXNTcGFjZUNoYXIoYykpOwoJCQlyZXR1cm4gcmVzLnRvU3RyaW5nKCk7CgkJfQogCgkJcHVibGljIGJvb2xlYW4gaXNTcGFjZUNoYXIoaW50IGMpIHsKCQkJaWYgKGZpbHRlciAhPSBudWxsKQoJCQkJcmV0dXJuIGZpbHRlci5pc1NwYWNlQ2hhcihjKTsKCQkJcmV0dXJuIGMgPT0gJyAnIHx8IGMgPT0gJ1xuJyB8fCBjID09ICdccicgfHwgYyA9PSAnXHQnIHx8IGMgPT0gLTE7CgkJfQogCgkJcHVibGljIGludGVyZmFjZSBTcGFjZUNoYXJGaWx0ZXIgewoJCQlwdWJsaWMgYm9vbGVhbiBpc1NwYWNlQ2hhcihpbnQgY2gpOwoJCX0KCX0KfQo=