#include <bits/stdc++.h>
using namespace std;
map<char, int> tmp;
string ans;
const int maxn = 1e5 + 100;
bool vis[maxn];
int main() {
  ans.clear();
  long long n;
  string str;
  cin >> n;
  cin >> str;
  int len = str.size() - n;
  int flag = 0;
  memset(vis, 0, sizeof(vis));
  for (int i = 0; i < n; ++i) {
    tmp[str[i]]++;
  }
  int pre = 0;
  map<char, int>::iterator it = tmp.begin();
  char m;
  for (int i = n - 1; i >= 0; --i) {
    if (str[i] == it->first) {
      flag = i;
      m = str[i];
      vis[i] = 1;
      break;
    }
  }
  for (int i = 1; i < len; ++i) {
    tmp[str[i - 1]]--;
    tmp[str[i + n - 1]]++;
    char c;
    for (it = tmp.begin(); it != tmp.end(); ++it) {
      if (tmp[it->first]) {
        c = it->first;
        break;
      }
    }
    if (c == m) {
      if (flag < i) {
        for (int j = i + n - 1; j >= i; --j) {
          if (str[j] == c) {
            vis[j] = 1;
            flag = j;
            break;
          }
        }
      }
    } else if (c > m) {
      m = c;
      for (int j = i + n - 1; j >= i; --j) {
        if (str[j] == c) {
          vis[j] = 1;
          flag = j;
          break;
        }
      }
    }
  }
  for (int i = 0; i < str.size(); ++i) {
    if (str[i] < m)
      ans.push_back(str[i]);
    else if (str[i] == m && vis[i])
      ans.push_back(str[i]);
  }
  sort(ans.begin(), ans.end());
  cout << ans << endl;
  return 0;
}
