#include <bits/stdc++.h>
using namespace std;
struct coisa {
  char l;
  int p;
  coisa() {}
  coisa(char _l, int _p) {
    l = _l;
    p = _p;
  }
  bool operator<(const coisa &a) const {
    if (l == a.l) return p > a.p;
    return l < a.l;
  }
};
set<coisa> S;
int cnt[300];
pair<int, int> atual[300];
int main() {
  int i, m;
  char s[100005];
  scanf("%d", &m);
  scanf(" %s", s);
  for (i = 0; s[i]; i++) cnt[(int)s[i]]++;
  for (i = 0; i < m; i++) {
    S.insert(coisa(s[i], i));
  }
  for (int c = 'a'; c <= 'z'; c++) {
    atual[c].first = 0;
    atual[c].second = -1;
  }
  auto it = S.begin();
  char maxi = it->l;
  atual[(int)it->l].first++;
  atual[(int)it->l].second = it->p;
  for (; s[i]; i++) {
    S.erase(coisa(s[i - m], i - m));
    S.insert(coisa(s[i], i));
    it = S.begin();
    maxi = max(maxi, it->l);
    if ((atual[(int)it->l].second == -1) ||
        (i - atual[(int)it->l].second >= m)) {
      atual[(int)it->l].first++;
      atual[(int)it->l].second = it->p;
    }
  }
  for (char c = 'a'; c < maxi; c++) {
    for (i = 0; i < cnt[(int)c]; i++) printf("%c", c);
  }
  for (i = 0; i < atual[(int)maxi].first; i++) printf("%c", maxi);
  printf("\n");
  return 0;
}
