#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
vector<int> Vec[26];
char s[N];
int fa[N], n, m, L[N], R[N], ok[N];
int getfa(int x) { return fa[x] == x ? x : fa[x] = getfa(fa[x]); }
void Modify(int L, int R) {
  L = getfa(L);
  while (L <= R) {
    fa[L] = L + 1;
    L = getfa(L);
  }
  return;
}
int main() {
  scanf("%d", &m);
  scanf("%s", s + 1);
  n = strlen(s + 1);
  for (int i = 1; i <= n; i++)
    L[i] = max(1, i - m + 1), R[i] = min(n, i + m - 1);
  for (int i = 1; i <= n; i++) Vec[s[i] - 97].push_back(i);
  for (int i = 1; i <= n + 1; i++) fa[i] = i;
  for (int i = 0; i < 26; i++) {
    int size = Vec[i].size();
    for (int j = 0; j < size; j++) {
      int Lest = getfa(1);
      if (j < size - 1 && L[Vec[i][j + 1]] <= Lest) continue;
      Modify(L[Vec[i][j]], Vec[i][j]);
      if (!ok[Vec[i][j]]) putchar(i + 97), ok[Vec[i][j]] = 1;
      if (getfa(1) > n - m + 1) return 0;
    }
    for (int j = 0; j < size; j++) {
      int Lest = getfa(1);
      Modify(L[Vec[i][j]], Vec[i][j]);
      if (!ok[Vec[i][j]]) putchar(i + 97), ok[Vec[i][j]] = 1;
      if (getfa(1) > n - m + 1) return 0;
    }
  }
  return 0;
}
