#include <bits/stdc++.h>
using namespace std;
inline long long read() {
  char c = getchar();
  long long d = 0, f = 1;
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    d = (d << 3) + (d << 1) + (c ^ 48);
    c = getchar();
  }
  return d * f;
}
long long n;
int main() {
  n = read();
  string s;
  cin >> s;
  long long times = 1, maxtimes = n / 2 - 1;
  for (long long i = 0; i < s.size(); ++i) {
    putchar(s[i]);
    if (i % 2 == 1 && times <= maxtimes) {
      putchar('-');
      times++;
    }
  }
  return 0;
}

### Prompt

Please formulate a Cpp solution to the following problem:

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;
inline long long read() {
  char c = getchar();
  long long d = 0, f = 1;
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    d = (d << 3) + (d << 1) + (c ^ 48);
    c = getchar();
  }
  return d * f;
}
long long n;
int main() {
  n = read();
  string s;
  cin >> s;
  long long times = 1, maxtimes = n / 2 - 1;
  for (long long i = 0; i < s.size(); ++i) {
    putchar(s[i]);
    if (i % 2 == 1 && times <= maxtimes) {
      putchar('-');
      times++;
    }
  }
  return 0;
}

```