#include <algorithm>
#include <array>
#include <bitset>
#include <cctype>
#include <chrono>
#include <cmath>
#include <ctime>
#include <deque>
#include <fstream>
#include <functional>
#include <iomanip>
#include <iostream>
#include <iso646.h>
#include <iterator>
#include <list>
#include <map>
#include <memory>
#include <numeric>
/*                           mnciitbhu                        */
//
//  |\    /| |\    |    --  |  |  -------  |⎻⎻\   |   |  |    |
//  | \  / | | \   |   /    |  |     |     |   |  |   |  |    |
//  |  \/  | |  \  |  (     |  |     |     |--<   |---|  |    |
//  |      | |   \ |   \    |  |     |     |   |  |   |   \  /
//  |      | |    \|    --  |  |     |     |__/   |   |    --
//
#include <queue>
#include <ratio>
#include <regex>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <type_traits>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <valarray>
#include <vector>
using namespace std;
using namespace std::chrono;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
#if not defined(ONLINE_JUDGE) && not defined(_MSVC_LANG) && defined(DEBUG_)
#include "myconfig.hpp"
#else
#define LOL(x) ;
#define LOLX(...) ;
#endif
#if not defined(DEBUG_)

#endif
int main() 
{
  ios::sync_with_stdio(false);
  cin.tie(0);

	ll n, m;
	cin >> n >> m;
	vector<ll> lr(m + 1), ar(n + 1, 0);
	unordered_set<ll> st, sx, sd;
	for(int i = 1; i <= m; ++i)
		cin >> lr[i];
	
	for(int i = 1; i <= n; ++i)
		sx.insert(i);

	for(int i = 1; i < m; ++i)
	{
		ll d = (lr[i + 1] - lr[i] + n) % n;
		LOLX(i, d);
		if(d == 0) d = n;
		st.insert(d);
		sx.erase(d);
		if(ar[lr[i]] == 0)
			ar[lr[i]] = d;
		else if(ar[lr[i]] != d)
		{
			cout << -1;
			return 0;
		}
	}
	auto it = sx.begin();
	LOLX(ar, sx);
	for(int i = 1; i <= n; ++i)
	{
		if(ar[i] == 0)
		{
			ar[i] = *it;
			++it;
		}
	}
	ar[0] = 0;
	if(accumulate(ar.begin(), ar.end(), 0LL) != n * (n + 1) / 2)
	{
		cout << -1;
		return 0;
	}
	for(int i = 1; i <= n; ++i)
		cout << ar[i] << ' ';






	return 0;
}
