#include <bits/stdc++.h>
using namespace std;
long long power(long long a, long long b) {
  long long res = 1;
  a = a % 998244353;
  while (b > 0) {
    if (b & 1) {
      res = (res * a) % 998244353;
      b--;
    }
    a = (a * a) % 998244353;
    b >>= 1;
  }
  return res;
}
long long fermat_inv(long long y) { return power(y, 998244353 - 2); }
long long gcd(long long a, long long b) { return (b == 0) ? a : gcd(b, a % b); }
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long t = 1;
  while (t--) {
    long long c = 1e18;
    int n;
    cin >> n;
    long long a[n];
    for (int i = 0; i < n; i++) cin >> a[i];
    sort(a, a + n);
    long long k;
    cin >> k;
    vector<long long> v[2];
    v[0].push_back(1ll);
    v[1].push_back(1ll);
    for (int i = 0; i < n; i++) {
      vector<long long> temp;
      long long val = 1;
      while (a[i] <= c / val) {
        val *= a[i];
        long long val1 = c / val;
        for (int j = 0; j < v[i % 2].size(); j++) {
          if (v[i % 2][j] <= val1) temp.push_back(v[i % 2][j] * val);
        }
      }
      for (long long j = 0; j < temp.size(); j++) v[i % 2].push_back(temp[j]);
    }
    long long l = 1;
    long long r = c;
    long long ans = 0;
    sort(v[0].begin(), v[0].end());
    sort(v[1].begin(), v[1].end());
    while (l <= r) {
      long long mid = (l + r) / 2;
      long long val = 0;
      for (int i = 0; i < v[0].size(); i++) {
        long long h = mid / v[0][i];
        auto it = upper_bound(v[1].begin(), v[1].end(), h);
        val += (it - v[1].begin());
      }
      if (val >= k) {
        ans = mid;
        r = mid - 1;
      } else
        l = mid + 1;
    }
    cout << ans << "\n";
  }
  return 0;
}
