#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
const int mod2 = 998244353;
bitset<1001> visiteddfs, visitedbfs;
void dfs(vector<vector<int> >& graph, int vertex) {
  cout << vertex << ' ';
  visiteddfs[vertex] = true;
  for (int child : graph[vertex]) {
    if (!visiteddfs[child]) {
      dfs(graph, child);
    }
  }
}
void bfs(vector<vector<int> >& graph, int vertex) {
  visitedbfs[vertex] = true;
  queue<int> vertices;
  vertices.push(vertex);
  while (!vertices.empty()) {
    int v = vertices.front();
    cout << v << ' ';
    vertices.pop();
    for (int child : graph[v]) {
      if (!visitedbfs[child]) {
        visitedbfs[child] = true;
        vertices.push(child);
      }
    }
  }
}
bool isprime(unsigned long long n) {
  if (n % 2 == 0) {
    return n == 2;
  }
  if (n % 3 == 0) {
    return n == 3;
  }
  unsigned long long k = sqrt(n);
  for (int i = 5; i <= k; i += 2) {
    if (n % k == 0) {
      return false;
    }
  }
  return n != 1;
}
void addedge(vector<vector<pair<int, int> > >& adj, int v1, int v2, int wt) {
  adj[v1].emplace_back(v2, wt);
  adj[v2].emplace_back(v1, wt);
}
void addedge(vector<vector<int> >& adj, int v1, int v2) {
  adj[v1].push_back(v2);
  adj[v2].push_back(v1);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  int k;
  string s;
  cin >> k >> s;
  if (s.size() > k)
    cout << s.substr(k) + "...";
  else
    cout << s;
}
