#include <stdio.h>#define MAX 10000long int Input[MAX];int N,K;int isPossible(long int l){ int i,k; for ( i=0, k=K; k>0 && i<N; i++) { k -= (int)(Input[i]/l); } if (k>0) return 0; return 1;}long int binSrch(long int low, long int high){ long int mid, ans; ans = mid = 0; while(low <= high) { mid = (low+high)/2; if(isPossible(mid)==1) { ans = mid; /* Stores last successful value */ low = mid+1; } else { high = mid - 1; } } return ans;}int main(){ int i; long int max; /* Get Input */ scanf("%d %d", &N, &K); scanf("%ld", &Input[0]); max = Input[0]; for ( i = 1; i<N; i++) { scanf ("%ld", &Input[i]); max = Input[i]>max?Input[i]:max; } printf("%ld\n", binSrch(0, max)); return 0;}