#include <bits/stdc++.h>
int dx[] = {1, -1, 0, 0};
int dy[] = {0, 0, 1, -1};
const int mod = (int)1e9 + 7;
const int oo = 1 << 30;
const long long loo = (long long)1 << 60;
const double pi = 3.14159265359;
const int N = (int)1e2 + 5;
const double ABS = 1e-8;
const int INT_SIZE = 30;
using namespace std;
int a[N], l[N], vis[N];
int main() {
  int n, m;
  cin >> n >> m;
  for (int i = 1; i <= m; i++) {
    cin >> l[i];
  }
  int start = l[1];
  bool ok = true;
  for (int i = 2; i <= m; i++) {
    int nextIdx = l[i] - start;
    if (nextIdx <= 0) {
      int temp = l[i] + n - start;
      if ((vis[temp] && a[start] != temp) || (a[start] != temp) && a[start]) {
        ok = false;
        break;
      }
      vis[temp] = 1;
      a[start] = temp;
    } else {
      if ((vis[nextIdx] && a[start] != nextIdx) ||
          ((a[start] != nextIdx) && a[start])) {
        ok = false;
        break;
      }
      vis[nextIdx] = 1;
      a[start] = nextIdx;
    }
    start = l[i];
  }
  if (ok) {
    for (int i = 1, j = 1; i <= n; i++) {
      if (a[i] == 0) {
        for (; j <= n; j++) {
          if (!vis[j]) {
            vis[j] = 1;
            a[i] = j;
            break;
          }
        }
      }
    }
    for (int i = 1; i <= n; i++) cout << a[i] << " ";
  } else
    cout << -1;
}
