Valera had two bags of potatoes, the first of these bags contains x (x ≥ 1) potatoes, and the second — y (y ≥ 1) potatoes. Valera — very scattered boy, so the first bag of potatoes (it contains x potatoes) Valera lost. Valera remembers that the total amount of potatoes (x + y) in the two bags, firstly, was not gerater than n, and, secondly, was divisible by k.

Help Valera to determine how many potatoes could be in the first bag. Print all such possible numbers in ascending order.

Input

The first line of input contains three integers y, k, n (1 ≤ y, k, n ≤ 109; <image> ≤ 105).

Output

Print the list of whitespace-separated integers — all possible values of x in ascending order. You should print each possible value of x exactly once.

If there are no such values of x print a single integer -1.

Examples

Input

10 1 10


Output

-1


Input

10 6 40


Output

2 8 14 20 26 
/*  MOHD SADIQ  */

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.*;
import java.util.ArrayList;

public class Main {

    private static  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    private  long longVal() throws IOException{
        return Long.parseLong(br.readLine().trim());
    }
    private  int intVal() throws IOException{
        return Integer.parseInt(br.readLine().trim());
    }
    private  double doubleVal() throws IOException{
        return Double.parseDouble(br.readLine().trim());
    }
    private  int gcdExtended(int a, int b, int x, int y)
    {
        if (a == 0)
        {
            x = 0;
            y = 1;
            return b;
        }

        int x1=1, y1=1;
        int gcd = gcdExtended(b%a, a, x1, y1);

        x = y1 - (b/a) * x1;
        y = x1;

        return gcd;
    }

    private int gcd(int a,int b){
        return gcdExtended(a,b,1,1);
    }

    private  int[] intArr() throws IOException{
        String[] s = br.readLine().trim().split(" ");
        int n = s.length;
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = Integer.parseInt(s[i]);
        }
        return a;
    }
    private  long[] longArr() throws IOException {
        String[] s = br.readLine().trim().split(" ");
        int n = s.length;
        long[] a = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = Long.parseLong(s[i]);
        }
        return a;
    }
    private  double[] doubleArr() throws IOException {
        String[] s = br.readLine().trim().split(" ");
        int n = s.length;
        double[] a = new double[n];
        for (int i = 0; i < n; i++) {
            a[i] = Double.parseDouble(s[i]);
        }
        return a;
    }
    private String[] stringArr() throws IOException{
        String[] s = br.readLine().trim().split(" ");
        return s;
    }
    private  char[] charArr() throws IOException{
        return br.readLine().trim().toCharArray();
    }

    private static long mod = (long)Math.pow(10,9)+7;


    private static String solve() throws IOException {

        Main obj = new Main();
        int[] a = obj.intArr();
        int y=a[0],k = a[1],n = a[2];
        if(y>=n)
            return "-1";
        StringBuffer ans = new StringBuffer();
        int x = y%k;
        x = k - x;
        n -= y;
        if(x==0){
            x = k;
        }
        while (x<=n){
            ans.append(x+" ");
            x += k;
        }
        if(ans.length()==0)
            return "-1";
        return String.valueOf(ans);
    }


    public static void main(String[] args) throws IOException {
        Main ob = new Main();
//        int total_test_case = ob.intVal();
        StringBuffer ans = new StringBuffer();
        int total_test_case = 1;
        for(int test_case =0;test_case<total_test_case;test_case++){
            ans.append(solve()+"\n");
//            System.out.println(solve(a));
        }
        System.out.print(ans);
    }
}