#include <bits/stdc++.h>
using namespace std;
map<int, int> Map;
int N, M;
int cnt;
int pos[110];
void read() {
  int num;
  for (int i = 0; i < M; i++) {
    scanf("%d", &num);
    if (Map.find(num) == Map.end()) {
      Map.insert(make_pair(num, 1));
    } else {
      Map[num] += 1;
    }
  }
  for (map<int, int>::iterator iter = Map.begin(); iter != Map.end(); iter++) {
    pos[cnt] = iter->second;
    cnt++;
  }
  return;
}
bool judge(int k) {
  int tot = 0;
  for (int i = 0; i < cnt; i++) {
    tot += pos[i] / k;
  }
  if (tot >= N) {
    return true;
  } else {
    return false;
  }
}
int main() {
  cin >> N >> M;
  if (N > M) {
    printf("0");
    return 0;
  }
  read();
  for (int i = 1; i <= 110; i++) {
    if (judge(i) == false) {
      cout << i - 1 << endl;
      return 0;
    }
  }
  return 0;
}
