func_code_string: #include <bits/stdc++.h>   using namespace std;   int a[110];   int dp[110][110];   map<int, int> mp;   bool cmp(int p, int q) { return p > q; }   int main() {     int n, m;     while (scanf( %d%d , &n, &m) == 2) {       memset(a, 0, sizeof(a));       memset(dp, 0, sizeof(dp));       int u;       int b = -1;       for (int i = 1; i <= m; i++) {         cin >> u;         a[u]++;         b = max(b, u);       }       sort(a + 1, a + 110, cmp);       int ans = 0, l = 0;       for (int i = 0; i <= b; i++) {         if (a[i]) l++;       }       for (int i = 1; i <= n; i++) {         dp[1][i] = a[1] / i;       }       for (int i = 1; i <= l; i++) {         dp[i][1] = a[1];       }       for (int i = 2; i <= l; i++) {         for (int j = 1; j <= n; j++) {           for (int k = 0; k < j; k++) {             dp[i][j] = max(dp[i][j], min(dp[i - 1][k], a[i] / (j - k)));           }         }       }       int Max = 0;       for (int i = 1; i <= l; i++) {         Max = max(dp[i][n], Max);       }       cout << Max << endl;     }     return 0;   }   