import java.io.*;
import java.util.*;
import java.math.*;
class dcepc203
{
static boolean isprime(long n){
long arr[]={2,3,5,7,11,13,17},j;
int i;
for(i=0;i<arr.length;i++)if(n==arr[i])return true;
for(i=0;i<arr.length;i++){
j=(n-1);
while((j%2)==0)j/=2;
b=k.modPow(exp,mod);
while(j<=(n-1)){
k=(b.multiply(b)).mod(mod);
if(k.equals(check)&&!b.equals(check)&&!b.equals(c1) ){
return false;
}
j*=2;
b=k;
}
if(!b.equals(check))return false;
}
return true;
}
{
boolean arr[]=new boolean[10000001];
int t,te,i=3,j,n,ans[]=new int[10000001];
long k;
for(i=2;i<100001;i++){
k=(2L*i*i)-1;
arr[i]=isprime(k);
}
ans[2]=0;
for(i=3;i<100001;i++){
ans[i]=ans[i-1];
if(arr[i-1])ans[i]++;
}
for(te=0;te<t;te++)
{
}
return;
}
}
aW1wb3J0IGphdmEuaW8uKjsKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5tYXRoLio7CmNsYXNzIGRjZXBjMjAzCnsKICAgIHN0YXRpYyBib29sZWFuIGlzcHJpbWUobG9uZyBuKXsKICAgICAgICBsb25nIGFycltdPXsyLDMsNSw3LDExLDEzLDE3fSxqOwogICAgICAgIGludCBpOwogICAgICAgIGZvcihpPTA7aTxhcnIubGVuZ3RoO2krKylpZihuPT1hcnJbaV0pcmV0dXJuIHRydWU7CiAgICAgICAgQmlnSW50ZWdlciBrLGIsZXhwLG1vZD1uZXcgQmlnSW50ZWdlcigiIituKSxjaGVjaz1uZXcgQmlnSW50ZWdlcigiMSIpLGMxPW5ldyBCaWdJbnRlZ2VyKCIiKyhuLTEpKTsKICAgICAgICBmb3IoaT0wO2k8YXJyLmxlbmd0aDtpKyspewogICAgICAgICAgICBqPShuLTEpOwogICAgICAgICAgICBrPSBuZXcgQmlnSW50ZWdlcigiIithcnJbaV0pOwogICAgICAgICAgICB3aGlsZSgoaiUyKT09MClqLz0yOwogICAgICAgICAgICBleHA9bmV3IEJpZ0ludGVnZXIoIiIraik7CiAgICAgICAgICAgIGI9ay5tb2RQb3coZXhwLG1vZCk7CiAgICAgICAgICAgIHdoaWxlKGo8PShuLTEpKXsKICAgICAgICAgICAgICAgIGs9KGIubXVsdGlwbHkoYikpLm1vZChtb2QpOwogICAgICAgICAgICAgICAgaWYoay5lcXVhbHMoY2hlY2spJiYhYi5lcXVhbHMoY2hlY2spJiYhYi5lcXVhbHMoYzEpICl7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaio9MjsKICAgICAgICAgICAgICAgIGI9azsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZighYi5lcXVhbHMoY2hlY2spKXJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKXRocm93cyBFeGNlcHRpb24KICAgIHsKICAgICAgICBCdWZmZXJlZFJlYWRlciBicj1uZXcgQnVmZmVyZWRSZWFkZXIobmV3IElucHV0U3RyZWFtUmVhZGVyKFN5c3RlbS5pbikpOwogICAgICAgIGJvb2xlYW4gYXJyW109bmV3IGJvb2xlYW5bMTAwMDAwMDFdOwogICAgICAgIGludCB0LHRlLGk9MyxqLG4sYW5zW109bmV3IGludFsxMDAwMDAwMV07CiAgICAgICAgbG9uZyBrOwogICAgICAgIGZvcihpPTI7aTwxMDAwMDE7aSsrKXsKICAgICAgICAgICAgaz0oMkwqaSppKS0xOwogICAgICAgICAgICBhcnJbaV09aXNwcmltZShrKTsKICAgICAgICB9CiAgICAgICAgYW5zWzJdPTA7CiAgICAgICAgZm9yKGk9MztpPDEwMDAwMTtpKyspewogICAgICAgICAgICBhbnNbaV09YW5zW2ktMV07CiAgICAgICAgICAgIGlmKGFycltpLTFdKWFuc1tpXSsrOwogICAgICAgIH0KICAgICAgICB0PUludGVnZXIucGFyc2VJbnQoYnIucmVhZExpbmUoKSk7CiAgICAgICAgZm9yKHRlPTA7dGU8dDt0ZSsrKQogICAgICAgIHsKICAgICAgICAgICAgbj1JbnRlZ2VyLnBhcnNlSW50KGJyLnJlYWRMaW5lKCkpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oYW5zW25dKTsKICAgICAgICB9ICAKICAgICAgICByZXR1cm47CiAgICB9Cn0K