#include <bits/stdc++.h>
using namespace std;
int solve(void) {
  int N;
  string p, ans;
  cin >> N >> p;
  if (N <= 3) {
    cout << p << endl;
    ;
    return 0;
  }
  if (N % 3 == 1) {
    ans = p.substr(0, 2) + '-' + p.substr(2, 2);
    for (int i = 4; i < (int)N; i += 3) {
      ans += '-' + p.substr(i, 3);
    }
  } else {
    ans = p.substr(0, N % 3);
    for (int i = N % 3; i < (int)N; i += 3) {
      ans += i != 0 ? '-' + p.substr(i, 3) : p.substr(i, 3);
    }
  }
  cout << ans << endl;
  ;
  return 0;
}
int main(void) {
  solve();
  return 0;
}

### Prompt

Please provide a Cpp coded solution to the problem described below:

Phone number in Berland is a sequence of n digits. Often, to make it easier to memorize the number, it is divided into groups of two or three digits. For example, the phone number 1198733 is easier to remember as 11-987-33. Your task is to find for a given phone number any of its divisions into groups of two or three digits.

Input

The first line contains integer n (2 ≤ n ≤ 100) — amount of digits in the phone number. The second line contains n digits — the phone number to divide into groups.

Output

Output any of divisions of the given phone number into groups of two or three digits. Separate groups by single character -. If the answer is not unique, output any.

Examples

Input

6
549871


Output

54-98-71

Input

7
1198733


Output

11-987-33

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
int solve(void) {
  int N;
  string p, ans;
  cin >> N >> p;
  if (N <= 3) {
    cout << p << endl;
    ;
    return 0;
  }
  if (N % 3 == 1) {
    ans = p.substr(0, 2) + '-' + p.substr(2, 2);
    for (int i = 4; i < (int)N; i += 3) {
      ans += '-' + p.substr(i, 3);
    }
  } else {
    ans = p.substr(0, N % 3);
    for (int i = N % 3; i < (int)N; i += 3) {
      ans += i != 0 ? '-' + p.substr(i, 3) : p.substr(i, 3);
    }
  }
  cout << ans << endl;
  ;
  return 0;
}
int main(void) {
  solve();
  return 0;
}

```