
#include <iostream.h>
#include <vector>
#include <algorithm>

vector<long>* v;
vector<long> result;
vector<long> list;

long k,n;

void main()
{

  cin >> k;
  v=new vector<long>[k+1];
  long i,val;
  list.push_back(1);
 
  // insert the primes in the list
  for(i=0;i<k;i++)
    {
      cin >> val;
      v[0].push_back(val);
      list.push_back(val);
      
    }

  sort(v[0].begin(),v[0].end());

  sort(list.begin(),list.end());
  
  
  cin >>n;

  //result.push_back(v[0][0]);
  //v[0].erase(v[0].begin());

  long min,minlist;
  long count=0;
  while(count<n)
    {

      // get minimum
      //cout << "\nloop sr";

      min=-1;
      
      for(i=0;i<k+1;i++)
	{
	  if(v[i].size()>0 && (v[i][0]*list[i]<min || min==-1))
	    {
	      min=v[i][0]*list[i];
	   	      
	    }
	 	  
	}

   
      for(i=0;i<k+1;i++)
	{
	  if(v[i].size()>0 && v[i][0]*list[i]==min)
	    {
	      v[i].erase(v[i].begin());

	      //cout << "\nerased at : " << i << " value : " << min;
	      
	    }
	  
	}
      
	  result.push_back(min);

	  //	  cout  << min << "\n";
	  count++;

	 
	  //___ now insert the min number again
	  
     
      for(i=1;i<k+1;i++)
	{
	  v[i].push_back(min);
	  	  
	}
      
      
      
    }

  //  cout << endl;

  cout << min << flush;     
 

}























