function Main(input) {
  input=input.split("\n");
  if(input[input.length-1]===''){
    input.pop();
  }
  const N=input[0].split(' ')[0]-0;
  const K=input[0].split(' ')[1]-0;
  const A=input[1].split(' ').map(e=>{
    return e-0;
  });
  var max=Math.min(...A)+K+1;
  var min=1;
  var temp;
  for(var i=max-1;i>=1;i--){
    if(isOK(A,i,K)){
      console.log(i);
      return;
    }
  }
}

function isOK(A,num,K){
  var array=A.map(e=>{
    return e%num;
  });
  var sum=array.reduce((acc,cur)=>{
    return acc+cur;
  });
  if(sum%num!==0){
    return false;
  }
  sum/=num;
  array.sort((a,b)=>{
    return a-b;
  });
  var temp=0;
  for(var i=0;i<array.length-sum;i++){
    temp+=array[i];
  }
  return temp<=K;
}

//*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));