Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

No tag edit access

B. Permutation Game

time limit per test

1 secondmemory limit per test

256 megabytesinput

standard inputoutput

standard output*n* children are standing in a circle and playing a game. Children's numbers in clockwise order form a permutation *a*_{1}, *a*_{2}, ..., *a*_{n} of length *n*. It is an integer sequence such that each integer from 1 to *n* appears exactly once in it.

The game consists of *m* steps. On each step the current leader with index *i* counts out *a*_{i} people in clockwise order, starting from the next person. The last one to be pointed at by the leader becomes the new leader.

You are given numbers *l*_{1}, *l*_{2}, ..., *l*_{m} — indices of leaders in the beginning of each step. Child with number *l*_{1} is the first leader in the game.

Write a program which will restore a possible permutation *a*_{1}, *a*_{2}, ..., *a*_{n}. If there are multiple solutions then print any of them. If there is no solution then print -1.

Input

The first line contains two integer numbers *n*, *m* (1 ≤ *n*, *m* ≤ 100).

The second line contains *m* integer numbers *l*_{1}, *l*_{2}, ..., *l*_{m} (1 ≤ *l*_{i} ≤ *n*) — indices of leaders in the beginning of each step.

Output

Print such permutation of *n* numbers *a*_{1}, *a*_{2}, ..., *a*_{n} that leaders in the game will be exactly *l*_{1}, *l*_{2}, ..., *l*_{m} if all the rules are followed. If there are multiple solutions print any of them.

If there is no permutation which satisfies all described conditions print -1.

Examples

Input

4 5

2 3 1 4 4

Output

3 1 2 4

Input

3 3

3 1 2

Output

-1

Note

Let's follow leadership in the first example:

- Child 2 starts.
- Leadership goes from 2 to 2 +
*a*_{2}= 3. - Leadership goes from 3 to 3 +
*a*_{3}= 5. As it's greater than 4, it's going in a circle to 1. - Leadership goes from 1 to 1 +
*a*_{1}= 4. - Leadership goes from 4 to 4 +
*a*_{4}= 8. Thus in circle it still remains at 4.

Codeforces (c) Copyright 2010-2019 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Dec/12/2019 10:17:42 (g1).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|