#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define int long #define ll long long #define rng(i,a,b) for(int i=int(a);i=int(a);i--) #define per(i,b) gnr(i,0,b) #define eb emplace_back #define all(x) x.begin(),x.end() #define SZ(x) x.size() #define fi first #define se second const int INF = 1e9; using namespace std; template using vc=vector; template using vvc=vc>; using pi=pair; using vi=vc; template inline bool chmax(T &a,T b){if(a inline bool chmin(T &a,T b){if(a>b){a=b;return true;}return false;} double ans=0.0; int N,K; int A[10]; void dfs(int n,int sum[],int cnt[]){ if(n==N){ bool can=true; rep(i,K){ if(cnt[i]==0) can=false; } if(!can) return; double mi=(double)sum[0]/cnt[0],ma=(double)sum[0]/cnt[0]; rep(i,K){ chmax(ma,(double)sum[i]/cnt[i]); chmin(mi,(double)sum[i]/cnt[i]); } chmax(ans,ma-mi); return; } else{ rep(i,K){ sum[i]+=A[n]; cnt[i]++; dfs(n+1,sum,cnt); sum[i]-=A[n]; cnt[i]--; } } } signed main() { cin.tie(0); ios::sync_with_stdio(0); cout<> N >> K; rep(i,N) cin >> A[i]; int sum[K]={0}; int cnt[K]={0}; dfs(0,sum,cnt); cout << ceil(ans) << endl; }