A permutation p of size n is the sequence p1, p2, ..., pn, consisting of n distinct integers, each of them is from 1 to n (1 ≤ pi ≤ n).

A lucky permutation is such permutation p, that any integer i (1 ≤ i ≤ n) meets this condition ppi = n - i + 1.

You have integer n. Find some lucky permutation p of size n.

Input

The first line contains integer n (1 ≤ n ≤ 105) — the required permutation size.

Output

Print "-1" (without the quotes) if the lucky permutation p of size n doesn't exist.

Otherwise, print n distinct integers p1, p2, ..., pn (1 ≤ pi ≤ n) after a space — the required permutation.

If there are multiple answers, you can print any of them.

Examples

Input

1


Output

1 


Input

2


Output

-1


Input

4


Output

2 4 1 3 


Input

5


Output

2 5 3 1 4 
import java.util.Locale;
import java.util.Scanner;

public class HappyPermutationSolver {

    private int n;

    public static void main(String[] args) {
        HappyPermutationSolver solver = new HappyPermutationSolver();

        solver.readData();
        int[] solution = solver.solve();
        solver.print(solution);
    }

    private int gcd(int a, int b) {
        return b == 0 ? a : gcd(b, a % b);
    }

    private int lcm(int a, int b) {
        return a * b / gcd(a, b);
    }

    private void print(int[] values) {
        if (values.length > 0) {
            StringBuilder builder = new StringBuilder();

            for (int value : values) {
                builder.append(value);
                builder.append(" ");
            }

            print(builder);
        } else {
            print(-1);
        }
    }

    private void print(Object value) {
        System.out.println(value);
    }

    private void print(boolean value) {
        System.out.println(value ? "YES" : "NO");
    }

    private void print(int value) {
        System.out.println(value);
    }

    private void print(long value) {
        System.out.println(value);
    }

    private void print(double value) {
        System.out.printf(Locale.ENGLISH, "%.10f", value);
    }

    private int[] getDigits(int number) {
        int[] digits = new int[10];
        int index = digits.length - 1;
        int digitsCount = 0;

        while (number > 0) {
            digits[index] = number % 10;
            number /= 10;
            index--;
            digitsCount++;
        }

        int[] result = new int[digitsCount];

        System.arraycopy(digits, digits.length - digitsCount, result, 0, digitsCount);

        return result;
    }

    private int[] readArray(Scanner scanner, int size) {
        int[] result = new int[size];

        for (int i = 0; i < size; i++) {
            result[i] = scanner.nextInt();
        }

        return result;
    }

    private void readData() {
        Scanner scanner = new Scanner(System.in);

        n = scanner.nextInt();
    }

    private int[] solve() {
        int[] result;
        int x = n & 3;

        if (x == 0 || x == 1) {
            result = new int[n];

            if ((n & 1) == 1) {
                result[n >> 1] = (n >> 1) + 1;
            }

            for (int i = 1; i < (n >> 1); i += 2) {
                result[i - 1] = i + 1;
                result[i] = n - i + 1;

                result[n - i] = n - i;
                result[n - i - 1] = i;
            }
        }
        else {
            result = new int[0];
        }

        return result;
    }
}
