#include <bits/stdc++.h>
#define int long long
#define endl '\n'
#define Deghish ios_base::sync_with_stdio(false);cin.tie(NULL);
using namespace std;
bool isPrime(int n) {
    if (n<2) return false;
    for (int i = 2; i*i <= n; i++) {
        if (n%i == 0) return false;
    }
    return true;
}
vector<int> prim;
void fill() {
    int k = 2;
    while (prim.size() <= 10005) {
        if (isPrime(k)) prim.push_back(k);
        k++;
    }
}
int get_sqrt(int n) {
    int sqr = sqrtl(n);
    while ((sqr + 1) * (sqr + 1) <= n) sqr++;
    while (sqr * sqr > n) sqr--;
    return sqr;
}

vector<int>nextMax(vector<int>a) {
    vector<int>res(a.size(),-1);
    stack<int>st;
    for (int i = 0; i < a.size(); ++i) {
        while (!st.empty()&&a[st.top()]<a[i]) {
            res[st.top()]=i;
            st.pop();
        }
        st.push(i);
    }
    return res;
}
void solve() {
    int n,t;cin>>n>>t;
    vector<int>a(n);
    int l=1,h=1e9;
    for (auto &i:a)cin>>i;
    int ans=0;
    while (l<=h) {
        int mid=l+(h-l)/2;
        int x=0;
        for (auto i:a) {
            x+=mid/i;
        }
        if (x>=t) {
            ans=mid;
            h=mid-1;
        }
        else l=mid+1;

    }
    cout<<ans;
}
signed main() {
    Deghish
    int Tc = 1;//cin >> Tc;
    while (Tc--) {
        solve();
    }
    return 0;
}

