Problem: Determine if there exists a sequence obtained by permuting 1,2,...,N that satisfies the following conditions:

* The length of its longest increasing subsequence is A.
* The length of its longest decreasing subsequence is B.



If it exists, construct one such sequence.

Constraints

* 1 \leq N,A,B \leq 3\times 10^5
* All input values are integers.

Input

Input is given from Standard Input in the following format:


N A B


Output

If there are no sequences that satisfy the conditions, print `-1`.

Otherwise, print N integers. The i-th integer should be the i-th element of the sequence that you constructed.

Examples

Input

5 3 2


Output

2 4 1 5 3


Input

7 7 1


Output

1 2 3 4 5 6 7


Input

300000 300000 300000


Output

-1

Solution (in PYTHON3):

Solution:
def examC():
    N = LI(); N.sort()
    if N[0]==1:
        if N[1]==1:
            ans = 1
        else:
            ans = max(0,N[1]-2)
    else:
        ans = (N[1]-2)*(N[0]-2)
    print(ans)
    return

def examD():
    N, K = LI()
    ans = 0
    b = K+1
    while(b<=N):
        cur = N//b * (b-K) + max(0,N%b - K+1)
        if cur==N+1:
            cur = N
        ans += cur
        b += 1
#        print(ans)
    print(ans)
    return

def examE():
    N, A, B = LI()
    if N<A+B-1 or N>A*B:
        print(-1)
        return
    ans = []
    cur = N
    num = N
    rest = B - 1
    #print(rest)
    for i in range(B):
        cur -= A
        if cur<=rest:
            cur += A
            break
        for j in range(A):
            if num==rest:
                break
            ans.append(cur+1)
            cur += 1
            num -= 1
        cur -= A
        rest -= 1
    for i in range(rest,cur):
        ans.append(i+1)
    cur = rest
    for j in range(rest):
        ans.append(cur)
        cur -= 1
    print(" ".join(map(str,ans)))
    return

def examF():
    ans = 0
    print(ans)
    return

import sys,copy,bisect,itertools,heapq,math
from heapq import heappop,heappush,heapify
from collections import Counter,defaultdict,deque
def I(): return int(sys.stdin.readline())
def LI(): return list(map(int,sys.stdin.readline().split()))
def LSI(): return list(map(str,sys.stdin.readline().split()))
def LS(): return sys.stdin.readline().split()
def SI(): return sys.stdin.readline().strip()
global mod,mod2,inf,alphabet
mod = 10**9 + 7
mod2 = 998244353
inf = 10**18
alphabet = [chr(ord('a') + i) for i in range(26)]

if __name__ == '__main__':
    examE()

"""

"""