#include <bits/stdc++.h>
using namespace std;
using LINT = long long int;
using PII = pair<int, int>;
int m;
string s;
int ans[26];
set<int> covered;
int ccnt[26];
set<int> cpos[26];
bool iscovered(int l, int r) {
  if (!covered.size()) return false;
  auto lit = covered.lower_bound(l);
  if (lit == covered.end()) return false;
  return *lit <= r;
}
int findin(int c, int l, int r) {
  auto uit = cpos[c].upper_bound(r);
  if (uit == cpos[c].begin()) return -1;
  if (uit == cpos[c].end())
    if (*cpos[c].rbegin() >= l) return *cpos[c].rbegin();
  uit--;
  if (*uit >= l) return *uit;
  return -1;
}
int main() {
  cin >> m >> s;
  for (int i = 0; i < (s.size()); ++i) {
    cpos[s[i] - 'a'].insert(i);
    ccnt[s[i] - 'a']++;
  }
  for (int j = 0; j < (26); ++j) {
    for (int i = 0; i < (s.size() - m + 1); ++i) {
      if (iscovered(i, i + m - 1)) continue;
      int pos = findin(j, i, i + m - 1);
      if (pos != -1) {
        covered.insert(pos);
        ans[j]++;
      }
    }
  }
  int maxc = -1;
  for (int i = 0; i < (26); ++i)
    if (ans[i]) maxc = i;
  for (int i = 0; i < (maxc); ++i) ans[i] = ccnt[i];
  for (int i = 0; i < (26); ++i)
    while (ans[i]--) cout << char('a' + i);
  cout << endl;
  return 0;
}
