#include<bits/stdc++.h>
using namespace std;
const int MaxK=2000000000;
bool NotP[MaxK+1]={}; // NotP[2]=0
vector<int> prime={2};
int main(){
// sieve
for(int n=4; n<=MaxK; n+=2)
NotP[n]=1;
for(int n=3; n*n<=MaxK; n+=2){
if( NotP[n] )
continue;
for(int p=n; n*p<=MaxK; p+=2)
NotP[n*p]=1;
}
for(int n=3; n<=MaxK; n+=2)
if( !NotP[n] )
prime.push_back(n);
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IE1heEs9MjAwMDAwMDAwMDsKYm9vbCBOb3RQW01heEsrMV09e307IC8vIE5vdFBbMl09MAp2ZWN0b3I8aW50PiBwcmltZT17Mn07CmludCBtYWluKCl7CgkvLyBzaWV2ZQoJZm9yKGludCBuPTQ7IG48PU1heEs7IG4rPTIpCgkJTm90UFtuXT0xOwoJZm9yKGludCBuPTM7IG4qbjw9TWF4Szsgbis9Mil7CgkJaWYoIE5vdFBbbl0gKQoJCQljb250aW51ZTsKCQlmb3IoaW50IHA9bjsgbipwPD1NYXhLOyBwKz0yKQoJCQlOb3RQW24qcF09MTsKCX0KCWZvcihpbnQgbj0zOyBuPD1NYXhLOyBuKz0yKQoJCWlmKCAhTm90UFtuXSApCgkJCXByaW1lLnB1c2hfYmFjayhuKTsKfQo=