#include <bits/stdc++.h>
using namespace std;
int main() {
  int a, b, c, d, i, j, k, l, e;
  char n[105];
  while (~scanf("%d", &a)) {
    getchar();
    for (i = 1; i <= a; i++) scanf("%c", &n[i]);
    d = a;
    e = 0;
    for (j = 1; j <= a; j++) {
      if (d % 2 == 0) break;
      printf("%c", n[j]);
      if (j % 3 == 0 && j != 0 & j != a) {
        printf("-");
        d -= 3;
      }
    }
    for (k = j; k <= a; k++) {
      e += 1;
      printf("%c", n[k]);
      if (e % 2 == 0 && k != a) printf("-");
    }
    printf("\n");
  }
}

### Prompt

Generate 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;
int main() {
  int a, b, c, d, i, j, k, l, e;
  char n[105];
  while (~scanf("%d", &a)) {
    getchar();
    for (i = 1; i <= a; i++) scanf("%c", &n[i]);
    d = a;
    e = 0;
    for (j = 1; j <= a; j++) {
      if (d % 2 == 0) break;
      printf("%c", n[j]);
      if (j % 3 == 0 && j != 0 & j != a) {
        printf("-");
        d -= 3;
      }
    }
    for (k = j; k <= a; k++) {
      e += 1;
      printf("%c", n[k]);
      if (e % 2 == 0 && k != a) printf("-");
    }
    printf("\n");
  }
}

```