#include <iostream> 
#include <cstdio> 
#include <fstream> 
#include <algorithm> 
#include <cmath> 
#include <deque> 
#include <vector> 
#include <queue> 
#include <string> 
#include <cstring> 
#include <map> 
#include <stack> 
#include <set> 
using namespace std;
typedef  long long ll;
const int maxn = 310000;
#define inf 0x3f3f3f3f
int s[maxn];
int main()
{
	int n;
	cin >> n;
	int a, b;
	cin >> a >> b;
	if (a * b < n || a + b > n + 1)
	{
		printf("-1\n");
		return 0;
	}
	int cnt = 0;
	for (int i = n-a+1; i <= n; i++)
	{
		s[i] = ++cnt;
	}
	b--;
	int now = n - a;
	int flag = now% b;
	int jb = now / b;
	for (int i = now - jb+1; i >= 1; i -= jb)
	{
		if (flag)
		{
			flag--;
			i--;
			for (int j = i; j <= now; j++)
			{
				s[j] = ++cnt;
			}
			now = i - 1;
		}
		else
		{
			for (int j = i; j <= now; j++)
			{
				s[j] = ++cnt;
			}
			now = i - 1;
		}
	}
	for (int i = 1; i <= n; i++)
	{
		printf("%d", s[i]);
		if (i == n)printf("\n");
		else
		{
			printf(" ");
		}
	}
}