#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read(){
int x=0,f=1;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=-f;c=getchar();}
while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
return x*f;
}
map<int,int>mp;
int n,k,ans;
signed main(){
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
n=read(),k=read();
for(int i=1;i<=n;i++){
int x=read();
for(int j=1;j*j<=x;j++){
if(x%j)continue;
mp[j]++;
if(j*j!=x)mp[x/j]++;
}
}
for(auto i:mp){
if(mp[i.second]>=k)ans=max(ans,i.first);
}
printf("%lld\n",ans);
return 0;
}