#include <iostream>
using namespace std;
int T,ans;
long long n;
int main() {
	cin >> T;
	while (T--) {
		ans = 0;
		cin >> n;

		while (n % 2 == 0)  {
			ans++;
			n /= 2;
		}
		while (n % 3 == 0)  {
			ans += 2;
			n /= 3;
		}

		while (n % 5 == 0)  {
			ans++;
			n /= 5;
		}

		if (n != 1) cout << "-1" << endl;
		else cout << ans << endl;
	}

	return 0;
}


#include <iostream>
using namespace std;
int T,ans;
long long n;
int main() {
	cin >> T;
	while (T--) {
		ans = 0;
		cin >> n;

		while (n % 2 == 0)  {
			ans++;
			n /= 2;
		}
		while (n % 3 == 0)  {
			ans += 3;
			n /= 3;
		}

		while (n % 5 == 0)  {
			ans++;
			n /= 5;
		}

		if (n != 1) cout << "-1" << endl;
		else cout << ans << endl;
	}

	return 0;
}


#include <iostream>
using namespace std;
int T,ans;
long long n;
int main() {
	cin >> T;
	while (T--) {
		ans = 0;
		cin >> n;
		while (n % 2 == 0) ans++;
		while (n % 3 == 0) ans += 2;
		while (n % 5 == 0) ans += 3;
		if (n != 1) cout << "-1" << endl;
		else cout << ans << endl;

	}

	return 0;
}


#include <iostream>
using namespace std;
int T,ans;
long long n;
int main() {
	cin >> T;
	while (T--) {
		ans = 0;
		cin >> n;

		while (n % 2 == 0)  {
			n /= 2;
			++ans;
		}
		while (n % 3 == 0)  {
			ans += 2;
			n /= 3;
		}

		while (n % 5 == 0)  {
			ans += 3;
			n /= 5;
		}

		if (n != 1) cout << "-1" << endl;
		else cout << ans << endl;
	}

	return 0;
}


#include<bits/stdc++.h>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include<cstring>
#include<string>
#define fo(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long long ll;
typedef pair<int ,int> P;
const int maxn=100105;
const int INF=0x3f3f3f3f;
const ll LINF=0x3f3f3f3f3f3f3f3f;
const ll mod=998244353;
struct node
{
    int l,r,id;
    bool operator < (const node &a)const{
        return l<a.l;
    }
}an[maxn];

ll gcd(ll a,ll b){
if(b==0) return a;
return gcd(b, a%b);
}

int exgcd(int a,int b,int &x,int &y){
    //注意x和y必须是引用
    if(!b){x=1,y=0;return a;}
    int d=exgcd(b,a%b,x,y);
    int t=x;x=y,y=t-(a/b)*y;
    return d;//d是a和b的gcd，顺便求出来
}

bool cmp(node a,node b){
    if(a.l<b.l){
        return true;
    }
    else{
        if(a.l==b.l){
            if(a.r<b.r) return true;
        }
    }
    return false;
}

bool cmpp(node a,node b){
    if(a.r>b.r){
        return true;
    }
    else{
        if(a.l==b.l){
            if(a.l>b.l) return true;
        }
    }
    return false;
}

bool is_prime(int n)
{
    for(int i=2;i*i<=n;i++){
        if(n%i==0) return false;
    }
    return n!= 1;
}

vector<int> rrr[1005];
vector <P> anss;
queue <int> que;
priority_queue<int,vector<int>,greater<int> > q;
priority_queue<int> pp;
template <typename it>int o(it a){cout<<a<<endl;return 0;}
int qq;
ll n,ans;

int solve()
{
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    cin >> qq;
    while(qq--){
        ans =0 ;
        cin >> n;
        if(n==1){cout << 0 << endl;continue;}
        if(n%2&&n%3&&n%5){
            puts("-1");
            continue;
        }
        else{
            while(n!=1){
                if(n%2==0) n/=2,ans++;
                else if(n%3==0) n=n/3*2,ans++;
                else if(n%5==0) n=n/5*4,ans++;
                else break;
            }
            if(n==1)
            cout <<ans << endl;
            else cout << -1 << endl;
        }
    }

    return 0;

}

int main()
{
    solve();
    return 0;
}


#include<bits/stdc++.h>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include<cstring>
#include<string>
#define fo(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long long ll;
typedef pair<int ,int> P;
const int maxn=100105;
const int INF=0x3f3f3f3f;
const ll LINF=0x3f3f3f3f3f3f3f3f;
const ll mod=998244353;
struct node
{
    int l,r,id;
    bool operator < (const node &a)const{
        return l<a.l;
    }
}an[maxn];

ll gcd(ll a,ll b){
if(b==0) return a;
return gcd(b, a%b);
}

int exgcd(int a,int b,int &x,int &y){
    //注意x和y必须是引用
    if(!b){x=1,y=0;return a;}
    int d=exgcd(b,a%b,x,y);
    int t=x;x=y,y=t-(a/b)*y;
    return d;//d是a和b的gcd，顺便求出来
}

bool cmp(node a,node b){
    if(a.l<b.l){
        return true;
    }
    else{
        if(a.l==b.l){
            if(a.r<b.r) return true;
        }
    }
    return false;
}

bool cmpp(node a,node b){
    if(a.r>b.r){
        return true;
    }
    else{
        if(a.l==b.l){
            if(a.l>b.l) return true;
        }
    }
    return false;
}

bool is_prime(int n)
{
    for(int i=2;i*i<=n;i++){
        if(n%i==0) return false;
    }
    return n!= 1;
}

vector<int> rrr[1005];
vector <P> anss;
queue <int> que;
priority_queue<int,vector<int>,greater<int> > q;
priority_queue<int> pp;
template <typename it>int o(it a){cout<<a<<endl;return 0;}
int qq;
ll n,ans;
int solve()
{
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);

    cin >> qq;
    while(qq--){
        ans =0 ;
        cin >> n;
        if(n==1){cout << 0 << endl;continue;}
        else{
            while(n!=1){
                if(n%2==0) n/=2,ans++;
                else if(n%3==0) n=n/3*2,ans++;
                else if(n%5==0) n=n/5*4,ans++;
                else{
                    ans=-1;break;
                }
            }
            cout <<ans << endl;
        }
    }

    return 0;

}

int main()
{
    solve();
    return 0;
}


#include<bits/stdc++.h>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include<cstring>
#include<string>
#define fo(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long long ll;
typedef pair<int ,int> P;
const int maxn=100105;
const int INF=0x3f3f3f3f;
const ll LINF=0x3f3f3f3f3f3f3f3f;
const ll mod=998244353;
struct node
{
    int l,r,id;
    bool operator < (const node &a)const{
        return l<a.l;
    }
}an[maxn];

ll gcd(ll a,ll b){
if(b==0) return a;
return gcd(b, a%b);
}

int exgcd(int a,int b,int &x,int &y){
    //注意x和y必须是引用
    if(!b){x=1,y=0;return a;}
    int d=exgcd(b,a%b,x,y);
    int t=x;x=y,y=t-(a/b)*y;
    return d;//d是a和b的gcd，顺便求出来
}

bool cmp(node a,node b){
    if(a.l<b.l){
        return true;
    }
    else{
        if(a.l==b.l){
            if(a.r<b.r) return true;
        }
    }
    return false;
}

bool cmpp(node a,node b){
    if(a.r>b.r){
        return true;
    }
    else{
        if(a.l==b.l){
            if(a.l>b.l) return true;
        }
    }
    return false;
}

bool is_prime(int n)
{
    for(int i=2;i*i<=n;i++){
        if(n%i==0) return false;
    }
    return n!= 1;
}

vector<int> rrr[1005];
vector <P> anss;
queue <int> que;
priority_queue<int,vector<int>,greater<int> > q;
priority_queue<int> pp;
template <typename it>int o(it a){cout<<a<<endl;return 0;}
int qq;
ll n,ans;
int solve()
{
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);

    cin >> qq;
    while(qq--){
        ans =0 ;
        cin >> n;
        if(n==1){cout << 0 << endl;continue;}
        if(n%2&&n%3&&n%5){
            puts("-1");
            continue;
        }
        else{
            while(n!=1){
                if(n%2==0) n/=2,ans++;
                else if(n%3==0) n=n/3*2,ans++;
                else if(n%5==0) n=n/5*4,ans++;
                else{
                    ans=-1;break;
                }
            }
            cout <<ans << endl;
        }
    }

    return 0;

}

int main()
{
    solve();
    return 0;
}


#include<bits/stdc++.h>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include<cstring>
#include<string>
#define fo(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long long ll;
typedef pair<int ,int> P;
const int maxn=100105;
const int INF=0x3f3f3f3f;
const ll LINF=0x3f3f3f3f3f3f3f3f;
const ll mod=998244353;
struct node
{
    int l,r,id;
    bool operator < (const node &a)const{
        return l<a.l;
    }
}an[maxn];

ll gcd(ll a,ll b){
if(b==0) return a;
return gcd(b, a%b);
}

int exgcd(int a,int b,int &x,int &y){
    //注意x和y必须是引用
    if(!b){x=1,y=0;return a;}
    int d=exgcd(b,a%b,x,y);
    int t=x;x=y,y=t-(a/b)*y;
    return d;//d是a和b的gcd，顺便求出来
}

bool cmp(node a,node b){
    if(a.l<b.l){
        return true;
    }
    else{
        if(a.l==b.l){
            if(a.r<b.r) return true;
        }
    }
    return false;
}

bool cmpp(node a,node b){
    if(a.r>b.r){
        return true;
    }
    else{
        if(a.l==b.l){
            if(a.l>b.l) return true;
        }
    }
    return false;
}

bool is_prime(int n)
{
    for(int i=2;i*i<=n;i++){
        if(n%i==0) return false;
    }
    return n!= 1;
}

vector<int> rrr[1005];
vector <P> anss;
queue <int> que;
priority_queue<int,vector<int>,greater<int> > q;
priority_queue<int> pp;
template <typename it>int o(it a){cout<<a<<endl;return 0;}
int qq;
ll n,ans;

int solve()
{
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    cin >> qq;
    while(qq--){
        ans =0 ;
        cin >> n;
        if(n==1){cout << 0 << endl;continue;}
        if(n%2&&n%3&&n%5){
            cout << -1 << endl;
            continue;
        }
        else{
            while(n!=1){
                if(n%2==0) n/=2,ans++;
                else if(n%3==0) n=n/3*2,ans++;
                else if(n%5==0) n=n/5*4,ans++;
                else break;
            }
            if(n==1)
            cout <<ans << endl;
            else cout << -1 << endl;
        }
    }

    return 0;

}

int main()
{
    solve();
    return 0;
}


#include<bits/stdc++.h>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include<cstring>
#include<string>
#define fo(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long long ll;
typedef pair<int ,int> P;
const int maxn=100105;
const int INF=0x3f3f3f3f;
const ll LINF=0x3f3f3f3f3f3f3f3f;
const ll mod=998244353;
struct node
{
    int l,r,id;
    bool operator < (const node &a)const{
        return l<a.l;
    }
}an[maxn];

ll gcd(ll a,ll b){
if(b==0) return a;
return gcd(b, a%b);
}

int exgcd(int a,int b,int &x,int &y){
    //注意x和y必须是引用
    if(!b){x=1,y=0;return a;}
    int d=exgcd(b,a%b,x,y);
    int t=x;x=y,y=t-(a/b)*y;
    return d;//d是a和b的gcd，顺便求出来
}

bool cmp(node a,node b){
    if(a.l<b.l){
        return true;
    }
    else{
        if(a.l==b.l){
            if(a.r<b.r) return true;
        }
    }
    return false;
}

bool cmpp(node a,node b){
    if(a.r>b.r){
        return true;
    }
    else{
        if(a.l==b.l){
            if(a.l>b.l) return true;
        }
    }
    return false;
}

bool is_prime(int n)
{
    for(int i=2;i*i<=n;i++){
        if(n%i==0) return false;
    }
    return n!= 1;
}

vector<int> rrr[1005];
vector <P> anss;
queue <int> que;
priority_queue<int,vector<int>,greater<int> > q;
priority_queue<int> pp;
template <typename it>int o(it a){cout<<a<<endl;return 0;}
int qq;
ll n,ans;

int solve()
{
   // ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    cin >> qq;
    while(qq--){
        ans =0 ;
        cin >> n;
        if(n==1){cout << 0 << endl;continue;}
        if(n%2&&n%3&&n%5){
            puts("-1");
            continue;
        }
        else{
            while(n!=1){
                if(n%2==0) n/=2,ans++;
                else if(n%3==0) n=n/3*2,ans++;
                else if(n%5==0) n=n/5*4,ans++;
                else break;
            }
            if(n==1)
            cout <<ans << endl;
            else cout << -1 << endl;
        }
    }

    return 0;

}

int main()
{
    solve();
    return 0;
}


#include<iostream>
using namespace std;

int digit_sum(int n){
    int sum=0;
    while(n>1) sum+=n%10,n/=10;
    return sum;
}
int main()
{
    int q;
    unsigned long long int n;
    cin>>q;
    while(q--){
        cin>>n;
        int ck=1,cnt=0;
        while(n>1){
            int d = n%10;
            if(d==5||!d) n=4*(n/5);
            else if(!(n%2)) n/=2;
            else if(((digit_sum(n))%3)==0) n=2*(n/3);
            else {
                ck=0;
                break;
            };
            cnt++;
//            cout<<n<<"--"<<cnt<<endl;
        }
        if(ck) cout<<cnt<<endl;
        else cout<<-1<<endl;
    }
    return 0;
}


//189301019.akshay
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.Random;
import java.util.Arrays;
import java.util.StringTokenizer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Collections;

public class A
{
    public static void main(String[] args)
	{
		FastReader sc=new FastReader();
		StringBuffer ans=new StringBuffer();
		int test=1;
		while(test-->0)
		{
			int n=sc.nextInt();
			if(n%2 == 1)ans.append("-1\n");
			if(n%2 == 1)
			continue;
			for(int i=n;i>0;i--)ans.append(i+" ");
			ans.append("\n");
		}

	    System.out.print(ans);
	}

    static final Random random=new Random();

	static void ruffleSort(int[] a) {
		int n=a.length;//shuffle, then sort
		for (int i=0; i<n; i++) {
			int oi=random.nextInt(n), temp=a[oi];
			a[oi]=a[i]; a[i]=temp;
		}
		Arrays.sort(a);
	}

	static void ruffleSort(long[] a) {
		int n=a.length;//shuffle, then sort
		for (int i=0; i<n; i++) {
			int oi=random.nextInt(n);
			long temp=a[oi];
			a[oi]=a[i]; a[i]=temp;
		}
		Arrays.sort(a);
	}

	static class FastReader
	{
		BufferedReader br;
		StringTokenizer st;

		public FastReader()
		{
			br = new BufferedReader(new
					InputStreamReader(System.in));
		}

		String next()
		{
			while (st == null || !st.hasMoreElements())
			{
				try
				{
					st = new StringTokenizer(br.readLine());
				}
				catch (IOException e)
				{
					e.printStackTrace();
				}
			}
			return st.nextToken();
		}

		int nextInt()
		{
			return Integer.parseInt(next());
		}

		long nextLong()
		{
			return Long.parseLong(next());
		}

		double nextDouble()
		{
			return Double.parseDouble(next());
		}

		String nextLine()
		{
			String str = "";
			try
			{
				str = br.readLine();
			}
			catch (IOException e)
			{
				e.printStackTrace();
			}
			return str;
		}
	}

}


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) {
		FastReader reader = new FastReader();
		int n = reader.nextInt();
		if ((n & 1) != 0) {
			System.out.println(-1);
			return;
		}
		StringBuilder sb = new StringBuilder("");
		for (int i = n; i >= 1; --i)
			sb = sb.append(i + " ");
		System.out.println(sb.toString().trim());
		reader.close();
	}

	static class FastReader {
		BufferedReader br;
		StringTokenizer st;

		public FastReader() {
			br = new BufferedReader(new InputStreamReader(System.in));
		}

		String next() {
			while (st == null || !st.hasMoreElements()) {
				try {
					st = new StringTokenizer(br.readLine().trim());
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			return st.nextToken();
		}

		int nextInt() {
			return Integer.parseInt(next());
		}

		long nextLong() {
			return Long.parseLong(next());
		}

		double nextDouble() {
			return Double.parseDouble(next());
		}

		String nextLine() {
			String str = "";
			try {
				str = br.readLine().trim();
			} catch (IOException e) {
				e.printStackTrace();
			}
			return str;
		}

		int[] readArray(int size) {
			int[] ar = new int[size];
			int i = 0;
			try {
				for (String s : br.readLine().trim().split("\\s+"))
					ar[i++] = Integer.parseInt(s);
			} catch (IOException e) {
				e.printStackTrace();
			}
			return ar;
		}

		void close() {
			try {
				br.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) {
		FastReader reader = new FastReader();
		int n = reader.nextInt();
		if ((n & 1) != 0) {
			System.out.println(-1);
			return;
		}
		for (int i = n; i >= 1; --i)
			System.out.print(i + (i == 1 ? "" : " "));
		reader.close();
	}

	static class FastReader {
		BufferedReader br;
		StringTokenizer st;

		public FastReader() {
			br = new BufferedReader(new InputStreamReader(System.in));
		}

		String next() {
			while (st == null || !st.hasMoreElements()) {
				try {
					st = new StringTokenizer(br.readLine().trim());
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			return st.nextToken();
		}

		int nextInt() {
			return Integer.parseInt(next());
		}

		long nextLong() {
			return Long.parseLong(next());
		}

		double nextDouble() {
			return Double.parseDouble(next());
		}

		String nextLine() {
			String str = "";
			try {
				str = br.readLine().trim();
			} catch (IOException e) {
				e.printStackTrace();
			}
			return str;
		}

		int[] readArray(int size) {
			int[] ar = new int[size];
			int i = 0;
			try {
				for (String s : br.readLine().trim().split("\\s+"))
					ar[i++] = Integer.parseInt(s);
			} catch (IOException e) {
				e.printStackTrace();
			}
			return ar;
		}

		void close() {
			try {
				br.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}


import java.io.*;
public class PerfectPermutation {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());

		if(n%2 == 1) {
			System.out.println("-1");
			return;
		}

		for(int i = 1; i <= n; i+=2) {
			System.out.print((i + 1) + " ");
			System.out.print(i + " ");
		}
	}
}


import java.io.*;
public class PerfectPermutation {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());

		if(n == 1) {
			System.out.println("-1");
			return;
		}

		System.out.print(n);
		int n1 = 1;
		while(n1 < n) {
			System.out.print( " " +(n1++));
		}
	}
}


import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class solution {
	public static void main(String args[]){
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		int n1 = n;
		int prev = 1;
		if(n1%2 != 0)
		{
			System.out.println(-1);
			return;
		}
		for(int i = 2; i <= n1; i++)
		{
			System.out.print(i+" "+prev);
			prev = ++i;
		}
    }
}


import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class solution {
	public static void main(String args[]){
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		int n1 = n;
		int prev = 1;
		if(n1%2 != 0)
		{
			System.out.println(-1);
			return;
		}
		for(int i = 2; i <= n1; i++)
		{
			System.out.print(i+" "+prev+" ");
			prev = ++i;
		}
    }
}


import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class solution {
	public static void main(String args[]){
		Scanner scan = new Scanner(System.in);
		int n = scan.nextInt();
		int n1 = n;
		int prev = 1;
		if(n1%2 != 0)
		{
			n1--;
		}
		for(int i = 2; i <= n1; i++)
		{
			System.out.print(i+" "+prev);
			prev = ++i;
		}

		if(n%2!=0)
		{
			System.out.print(" "+n);
		}
    }
}


import java.util.Scanner;
public class Main {
static void swap(int i,int j,int[ ] arr){
    int temp=arr[i];
    arr[i]=arr[j];
    arr[j]=temp;
}
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
      int n=sc.nextInt();
      if(n%2==1)
          System.out.println(-1);
      else{
          int[] arr=new int[n+1];
          for(int i=1;i<=n;i++)
              arr[i]=i;
          for(int i=1;i<=n-1;i++){
              swap(i,i+1,arr);
              i++;
          }
          for(int i=1;i<=n;i++)
          {
              System.out.print(arr[i]+" ");
          }
      }


import java.util.Scanner;
public class Main {
static void swap(int i,int j,int[ ] arr){
    int temp=arr[i];
    arr[i]=arr[j];
    arr[j]=temp;
}
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
      int n=sc.nextInt();
      if(n%2==1)
          System.out.println(-1);
      else{
          int[] arr=new int[n+1];
          for(int i=1;i<=n;i++)
              arr[i]=i;
          for(int i=1;i<=n-1;i++){
              swap(i,i+1,arr);
              i++;
          }
          for(int i=1;i<=n;i++)
          {
              System.out.print(arr[i]+" ");
          }
      }

        }
    }


import java.util.Scanner;

public class Main {

    public static void main(String... s) {
        Scanner sc = new Scanner(System.in);
        int size = sc.nextInt();
        int finalArray[] = new int[size];

        if(size<=1) {
            System.out.println("-1");
        } else {
            for (int i = 0; i < size; i++) {
                if (finalArray[i] == 0) {
                    finalArray[i] = i + 2;
                    finalArray[i + 1] = i + 1;
                }
                System.out.print(finalArray[i] + " ");
            }
        }
    }
}


import java.util.Scanner;

public class Main {

    public static void main(String... s) {
        Scanner sc = new Scanner(System.in);
        int size = sc.nextInt();
        int finalArray[] = new int[size];

        if(size<=1) {
            System.out.println("-1");
        } else {
            for (int i = 0; i < size; i++) {
                if (finalArray[i] == 0) {
                    finalArray[i] = i + 2;
                    if(i+1 < finalArray.length) {
                        finalArray[i + 1] = i + 1;
                    }
                }
                System.out.print(finalArray[i] + " ");
            }
        }
    }
}


import java.util.Arrays;
import java.util.Scanner;

public class Main {

    public static void main(String... s) {
        Scanner sc = new Scanner(System.in);
        int size = sc.nextInt();
        boolean possible = true;
        int finalArray[] = new int[size];

        for (int i = 0; i < size; i++) {
            if (finalArray[i] == 0) {
                finalArray[i] = i + 2;
                if(i+1 < finalArray.length) {
                    finalArray[i + 1] = i + 1;
                } else {
                    possible = false;
                    break;
                }
            }
        }
        if(possible) {
            Arrays.stream(finalArray).forEach(num -> {
                System.out.print(num + " ");
            });
        } else {
            System.out.println("-1");
        }
    }

}


// package CodeForces;

import java.io.*;
import java.util.*;

public class Problem_233A {
	public static void main(String[] args) throws IOException {
		Scanner sc = new Scanner();
		PrintWriter pw = new PrintWriter(System.out);
		int n=sc.nextInt();
		if(n==1)
		{
			System.out.println(-1);
			return;
		}
		ArrayList<Integer>a=new ArrayList<>();
		int t=n;
		for(int i=1;i<=n;i++)
		{
			if(i!=t)
				System.out.print(t--+" ");
			else
				a.add(t--);
		}
		for(int i=0;i<a.size();i++)
			System.out.print(a.get(i)+" ");
		pw.close();
	}

	static class Scanner {
		BufferedReader br;
		StringTokenizer st;

		Scanner() {
			br = new BufferedReader(new InputStreamReader(System.in));
		}

		String next() throws IOException {
			while (st == null || !st.hasMoreTokens()) {
				st = new StringTokenizer(br.readLine());
			}
			return st.nextToken();
		}

		int nextInt() throws IOException {
			return Integer.parseInt(next());
		}

		long nextLong() throws IOException {
			return Long.parseLong(next());
		}

		double nextDouble() throws IOException {
			return Double.parseDouble(next());
		}

		String nextLine() throws IOException {
			return br.readLine();
		}

		boolean hasnext() throws IOException {
			return br.ready();
		}

	}
}


// package CodeForces;

import java.io.*;
import java.util.*;

public class Problem_233A {
	public static void main(String[] args) throws IOException {
		Scanner sc = new Scanner();
		PrintWriter pw = new PrintWriter(System.out);
		int n=sc.nextInt();
		if(n%2==1)
		{
			System.out.println(-1);
			return;
		}
		ArrayList<Integer>a=new ArrayList<>();
		for(int i=1;i<=n;i++)
			a.add(i);
		for(int i=1;i<=n;i+=2)
			System.out.print(a.get(i)+" "+a.get(i-1)+" ");
		pw.close();
	}

	static class Scanner {
		BufferedReader br;
		StringTokenizer st;

		Scanner() {
			br = new BufferedReader(new InputStreamReader(System.in));
		}

		String next() throws IOException {
			while (st == null || !st.hasMoreTokens()) {
				st = new StringTokenizer(br.readLine());
			}
			return st.nextToken();
		}

		int nextInt() throws IOException {
			return Integer.parseInt(next());
		}

		long nextLong() throws IOException {
			return Long.parseLong(next());
		}

		double nextDouble() throws IOException {
			return Double.parseDouble(next());
		}

		String nextLine() throws IOException {
			return br.readLine();
		}

		boolean hasnext() throws IOException {
			return br.ready();
		}

	}
}


// package CodeForces;

import java.io.*;
import java.util.*;

public class Problem_233A {
	public static void main(String[] args) throws IOException {
		Scanner sc = new Scanner();
		PrintWriter pw = new PrintWriter(System.out);
		int n=sc.nextInt();
		if(n==1)
			System.out.println(-1);
		ArrayList<Integer>a=new ArrayList<>();
		int t=n;
		for(int i=1;i<=n;i++)
		{
			if(i!=t)
				System.out.print(t--+" ");
			else
				a.add(t--);
		}
		for(int i=0;i<a.size();i++)
			System.out.print(a.get(i)+" ");
		pw.close();
	}

	static class Scanner {
		BufferedReader br;
		StringTokenizer st;

		Scanner() {
			br = new BufferedReader(new InputStreamReader(System.in));
		}

		String next() throws IOException {
			while (st == null || !st.hasMoreTokens()) {
				st = new StringTokenizer(br.readLine());
			}
			return st.nextToken();
		}

		int nextInt() throws IOException {
			return Integer.parseInt(next());
		}

		long nextLong() throws IOException {
			return Long.parseLong(next());
		}

		double nextDouble() throws IOException {
			return Double.parseDouble(next());
		}

		String nextLine() throws IOException {
			return br.readLine();
		}

		boolean hasnext() throws IOException {
			return br.ready();
		}

	}
}


import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int x = in.nextInt();
		if(  x%2 != 0)
		{
			System.out.print(-1);
			return;
		}
		for(int i = 1 ; i <= x ; i++){
			System.out.print( (i%2==0 ? i-1:i+1) +" ");
		}

	}
}


import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int x = in.nextInt();
		if(  x%2 != 0)
		{
			System.out.print(-1);
			return;
		}
		for(int i = 1 ; i <= x ; i++){
			System.out.print( i%2==0 ? i-1:i+1);
		}

	}
}


import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int x = in.nextInt();
		if(x <= 1)
		{
			System.out.print(-1);
			return;
		}
		for(int i = 1 ; i <= x ; i++){
			System.out.print(i + " ");
		}

	}
}


import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int x = in.nextInt();
		if(  x%2 != 0)
		{
			System.out.print(-1);
			return;
		}
		for(int i = 1 ; i <= x ; i++){
			System.out.print( i%2==0 ? i-1:i+1 +" ");
		}

	}
}


import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n=sc.nextInt();
		String out="";
		if (n%2==1|n==0) {
			System.out.println("-1");
		}else {
			for(int x=1;x<=n;x++) {
				if(x%2==1) {
					out+=(x+1);
				}else {
					out+=(x-1);
				}
			}
			System.out.println(out);
		}

	}
}


import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n=sc.nextInt();
		String out="";
		if (n%2==1|n==0) {
			System.out.println("-1");
		}else {
			for(int x=1;x<=n;x++) {
				if(x%2==1) {
					out+=(x+1);
					if(x!=n)
						out+=" ";
				}else {
					out+=(x-1);
					if(x!=n)
						out+=" ";
				}
			}
			System.out.println(out);
		}

	}
}


import java.io.*;
import java.util.*;

public class Main {

    static String st = "";
    static List<String> s = new LinkedList<>();

    static void permute(char[] a, int k) {
        st = "";
        if (k == a.length) {
            for (int i = 0; i < a.length; i++) {
                st += a[i];
            }
            s.add(st);
        } else {
            for (int i = k; i < a.length; i++) {
                char temp = a[k];
                a[k] = a[i];
                a[i] = temp;

                permute(a, k + 1);

                temp = a[k];
                a[k] = a[i];
                a[i] = temp;
            }
        }
    }

    public static void main(String[] args) throws IOException {
        FastScanner in = new FastScanner(System.in);
        int N = in.nextInt();
        if (N % 2 == 0) {
            int T[] = new int[N];
            for (int i = 0; i < T.length; i++) {
                T[i] = i + 1;

            }
            for (int i = 0; i < N - 1; i += 2) {
                int l = T[i];
                T[i] = T[i + 1];
                T[i + 1] = l;
            }
            for (int i = 0; i < T.length; i++) {
                System.out.print(T[i] + " ");

            }
        } else {
            System.out.println("-1");
        }

    }

    public static int[] radixSort(int[] f) {
        return radixSort(f, f.length);
    }

    public static int[] radixSort(int[] f, int n) {
        int[] to = new int[n];
        {
            int[] b = new int[65537];
            for (int i = 0; i < n; i++) {
                b[1 + (f[i] & 0xffff)]++;
            }
            for (int i = 1; i <= 65536; i++) {
                b[i] += b[i - 1];
            }
            for (int i = 0; i < n; i++) {
                to[b[f[i] & 0xffff]++] = f[i];
            }
            int[] d = f;
            f = to;
            to = d;
        }
        {
            int[] b = new int[65537];
            for (int i = 0; i < n; i++) {
                b[1 + (f[i] >>> 16)]++;
            }
            for (int i = 1; i <= 65536; i++) {
                b[i] += b[i - 1];
            }
            for (int i = 0; i < n; i++) {
                to[b[f[i] >>> 16]++] = f[i];
            }
            int[] d = f;
            f = to;
            to = d;
        }
        return f;

    }

    private static class FastScanner {

        private final InputStream stream;
        private final byte[] buf = new byte[1024];
        private int curChar;
        private int numChars;

        public FastScanner(InputStream stream) {
            this.stream = stream;
        }

        int read() {
            if (numChars == -1) {
                throw new InputMismatchException();
            }
            if (curChar >= numChars) {
                curChar = 0;
                try {
                    numChars = stream.read(buf);
                } catch (IOException e) {
                    throw new InputMismatchException();
                }
                if (numChars <= 0) {
                    return -1;
                }
            }
            return buf[curChar++];
        }

        boolean isSpaceChar(int c) {
            return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
        }

        boolean isEndline(int c) {
            return c == '\n' || c == '\r' || c == -1;
        }

        public int nextInt() {
            return Integer.parseInt(next());
        }

        public int[] nextArrayInt(int n) {
            int tab[] = new int[n];
            for (int i = 0; i < n; i++) {
                tab[i] = nextInt();
            }
            return tab;
        }

        public String[] nextArrayString(int n) {
            String tab[] = new String[n];
            for (int i = 0; i < n; i++) {
                tab[i] = next();
            }
            return tab;
        }

        public long nextLong() {
            return Long.parseLong(next());
        }

        public double nextDouble() {
            return Double.parseDouble(next());
        }

        public String next() {
            int c = read();
            while (isSpaceChar(c)) {
                c = read();
            }
            StringBuilder res = new StringBuilder();
            do {
                res.appendCodePoint(c);
                c = read();
            } while (!isSpaceChar(c));
            return res.toString();
        }

        public String nextLine() {
            int c = read();
            while (isEndline(c)) {
                c = read();
            }
            StringBuilder res = new StringBuilder();
            do {
                res.appendCodePoint(c);
                c = read();
            } while (!isEndline(c));
            return res.toString();
        }
    }
}


import java.io.*;
import java.util.*;

public class Main {

    static String st = "";
    static List<String> s = new LinkedList<>();

    static void permute(char[] a, int k) {
        st = "";
        if (k == a.length) {
            for (int i = 0; i < a.length; i++) {
                st += a[i];
            }
            s.add(st);
        } else {
            for (int i = k; i < a.length; i++) {
                char temp = a[k];
                a[k] = a[i];
                a[i] = temp;

                permute(a, k + 1);

                temp = a[k];
                a[k] = a[i];
                a[i] = temp;
            }
        }
    }

    public static void main(String[] args) throws IOException {
        FastScanner in = new FastScanner(System.in);
        int N = in.nextInt();
        if (N == 1) {
            System.out.println("-1");
        } else {
                int T[] = new int[N];
                for (int i = 0; i < T.length; i++) {
                    T[i] = i + 1;

                }
                for (int i = 0; i < N - 1; i++) {
                    int l = T[i];
                    T[i] = T[i + 1];
                    T[i + 1] = l;
                }
                for (int i = 0; i < T.length; i++) {
                    System.out.print(T[i]+" ");

                }
        }
    }

    public static int[] radixSort(int[] f) {
        return radixSort(f, f.length);
    }

    public static int[] radixSort(int[] f, int n) {
        int[] to = new int[n];
        {
            int[] b = new int[65537];
            for (int i = 0; i < n; i++) {
                b[1 + (f[i] & 0xffff)]++;
            }
            for (int i = 1; i <= 65536; i++) {
                b[i] += b[i - 1];
            }
            for (int i = 0; i < n; i++) {
                to[b[f[i] & 0xffff]++] = f[i];
            }
            int[] d = f;
            f = to;
            to = d;
        }
        {
            int[] b = new int[65537];
            for (int i = 0; i < n; i++) {
                b[1 + (f[i] >>> 16)]++;
            }
            for (int i = 1; i <= 65536; i++) {
                b[i] += b[i - 1];
            }
            for (int i = 0; i < n; i++) {
                to[b[f[i] >>> 16]++] = f[i];
            }
            int[] d = f;
            f = to;
            to = d;
        }
        return f;

    }

    private static class FastScanner {

        private final InputStream stream;
        private final byte[] buf = new byte[1024];
        private int curChar;
        private int numChars;

        public FastScanner(InputStream stream) {
            this.stream = stream;
        }

        int read() {
            if (numChars == -1) {
                throw new InputMismatchException();
            }
            if (curChar >= numChars) {
                curChar = 0;
                try {
                    numChars = stream.read(buf);
                } catch (IOException e) {
                    throw new InputMismatchException();
                }
                if (numChars <= 0) {
                    return -1;
                }
            }
            return buf[curChar++];
        }

        boolean isSpaceChar(int c) {
            return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
        }

        boolean isEndline(int c) {
            return c == '\n' || c == '\r' || c == -1;
        }

        public int nextInt() {
            return Integer.parseInt(next());
        }

        public int[] nextArrayInt(int n) {
            int tab[] = new int[n];
            for (int i = 0; i < n; i++) {
                tab[i] = nextInt();
            }
            return tab;
        }

        public String[] nextArrayString(int n) {
            String tab[] = new String[n];
            for (int i = 0; i < n; i++) {
                tab[i] = next();
            }
            return tab;
        }

        public long nextLong() {
            return Long.parseLong(next());
        }

        public double nextDouble() {
            return Double.parseDouble(next());
        }

        public String next() {
            int c = read();
            while (isSpaceChar(c)) {
                c = read();
            }
            StringBuilder res = new StringBuilder();
            do {
                res.appendCodePoint(c);
                c = read();
            } while (!isSpaceChar(c));
            return res.toString();
        }

        public String nextLine() {
            int c = read();
            while (isEndline(c)) {
                c = read();
            }
            StringBuilder res = new StringBuilder();
            do {
                res.appendCodePoint(c);
                c = read();
            } while (!isEndline(c));
            return res.toString();
        }
    }
}


import java.io.*;
import java.util.*;

public class Main {

    static String st = "";
    static List<String> s = new LinkedList<>();

    static void permute(char[] a, int k) {
        st = "";
        if (k == a.length) {
            for (int i = 0; i < a.length; i++) {
                st += a[i];
            }
            s.add(st);
        } else {
            for (int i = k; i < a.length; i++) {
                char temp = a[k];
                a[k] = a[i];
                a[i] = temp;

                permute(a, k + 1);

                temp = a[k];
                a[k] = a[i];
                a[i] = temp;
            }
        }
    }

    public static void main(String[] args) throws IOException {
        FastScanner in = new FastScanner(System.in);
        int N = in.nextInt();
        if (N == 1) {
            System.out.println("-1");
        } else {
                int T[] = new int[N];
                for (int i = 0; i < T.length; i++) {
                    T[i] = i + 1;

                }
                for (int i = 0; i < N - 1; i+=2) {
                    int l = T[i];
                    T[i] = T[i + 1];
                    T[i + 1] = l;
                }
                for (int i = 0; i < T.length; i++) {
                    System.out.print(T[i]+" ");

                }
        }
    }

    public static int[] radixSort(int[] f) {
        return radixSort(f, f.length);
    }

    public static int[] radixSort(int[] f, int n) {
        int[] to = new int[n];
        {
            int[] b = new int[65537];
            for (int i = 0; i < n; i++) {
                b[1 + (f[i] & 0xffff)]++;
            }
            for (int i = 1; i <= 65536; i++) {
                b[i] += b[i - 1];
            }
            for (int i = 0; i < n; i++) {
                to[b[f[i] & 0xffff]++] = f[i];
            }
            int[] d = f;
            f = to;
            to = d;
        }
        {
            int[] b = new int[65537];
            for (int i = 0; i < n; i++) {
                b[1 + (f[i] >>> 16)]++;
            }
            for (int i = 1; i <= 65536; i++) {
                b[i] += b[i - 1];
            }
            for (int i = 0; i < n; i++) {
                to[b[f[i] >>> 16]++] = f[i];
            }
            int[] d = f;
            f = to;
            to = d;
        }
        return f;

    }

    private static class FastScanner {

        private final InputStream stream;
        private final byte[] buf = new byte[1024];
        private int curChar;
        private int numChars;

        public FastScanner(InputStream stream) {
            this.stream = stream;
        }

        int read() {
            if (numChars == -1) {
                throw new InputMismatchException();
            }
            if (curChar >= numChars) {
                curChar = 0;
                try {
                    numChars = stream.read(buf);
                } catch (IOException e) {
                    throw new InputMismatchException();
                }
                if (numChars <= 0) {
                    return -1;
                }
            }
            return buf[curChar++];
        }

        boolean isSpaceChar(int c) {
            return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
        }

        boolean isEndline(int c) {
            return c == '\n' || c == '\r' || c == -1;
        }

        public int nextInt() {
            return Integer.parseInt(next());
        }

        public int[] nextArrayInt(int n) {
            int tab[] = new int[n];
            for (int i = 0; i < n; i++) {
                tab[i] = nextInt();
            }
            return tab;
        }

        public String[] nextArrayString(int n) {
            String tab[] = new String[n];
            for (int i = 0; i < n; i++) {
                tab[i] = next();
            }
            return tab;
        }

        public long nextLong() {
            return Long.parseLong(next());
        }

        public double nextDouble() {
            return Double.parseDouble(next());
        }

        public String next() {
            int c = read();
            while (isSpaceChar(c)) {
                c = read();
            }
            StringBuilder res = new StringBuilder();
            do {
                res.appendCodePoint(c);
                c = read();
            } while (!isSpaceChar(c));
            return res.toString();
        }

        public String nextLine() {
            int c = read();
            while (isEndline(c)) {
                c = read();
            }
            StringBuilder res = new StringBuilder();
            do {
                res.appendCodePoint(c);
                c = read();
            } while (!isEndline(c));
            return res.toString();
        }
    }
}


public class Main{

    public static void main(String[] args){

    Scanner sc = new Scanner(System.in);
    int n =sc.nextInt();
    if(n%2==1){
        System.out.println(-1);
        System.exit(0);
    }
    for(int i=0;i<n/2;i++){
        int xx = i*2,yy = 2*i-1;
        System.out.print(xx+" "+yy+" ");
    }
    }
}


import java.util.*;

public class Main{

    public static void main(String[] args){

    Scanner sc = new Scanner(System.in);
    int n =sc.nextInt();
    if(n%2==1){
        System.out.println(-1);
        System.exit(0);
    }
    for(int i=1;i<=n/2;i++){
        int xx = i*2,yy = 2*i-1;
        System.out.print(xx+" "+yy+" ");
    }
    }
}


import java.util.*;

public class Main{

    public static void main(String[] args){

    Scanner sc = new Scanner(System.in);
    int n =sc.nextInt();
    if(n%2==1){
        System.out.println(-1);
        System.exit(0);
    }
    for(int i=0;i<n/2;i++){
        int xx = i*2,yy = 2*i-1;
        System.out.print(xx+" "+yy+" ");
    }
    }
}


import java.util.Scanner;

public class CodeForces233A {
    public static void main(String[] args) {
        try (Scanner s = new Scanner(System.in)) {
            int n = s.nextInt();
            if (n == 1) System.out.println( -1 );
            else {
                for (int i = 2; i <= n; i++) {
                    System.out.print(i+" ");
                }
                System.out.print(1);
            }
        }
    }
}


import java.util.Scanner;

public class CodeForces233A {
    public static void main(String[] args) {
        try (Scanner s = new Scanner(System.in)) {
            int n = s.nextInt();
            if ((n&1) == 1) System.out.println( -1 );
            else {
                for (int i = n; i > 0; i--) {
                    System.out.print(i+" ");
                }
            }
        }
    }
}


import java.util.Scanner;

public class CodeForces233A {
    public static void main(String[] args) {
        try (Scanner s = new Scanner(System.in)) {
            int n = s.nextInt();
            if (n == 1) System.out.println( -1 );
            else {
                for (int i = n; i > 0; i--) {
                    System.out.print(i+" ");
                }
            }
        }
    }
}


    import java.io.*;
    import java.util.*;
    import java.math.BigInteger;
    public class Main {
        private static StringBuilder sb = new StringBuilder();
        private static void s(String s){
            System.out.print(s);
        }
        private static void s(Double s){
            System.out.print(s);
        }
        private static void s(char s){
            System.out.print(s);
        }
        private static void sn(String s){
            System.out.println(s);
        }
        private static void sn(Boolean s){
            System.out.println(s);
        }
        private static void sn(long s){
            System.out.println(s);
        }
        private static void sn(Double s){
            System.out.println(s);
        }
        private static void sn(String s, Object o){
            sb.append(s+"\n");
        }
        private static void sn(long s, Object o){
            sb.append(s+"\n");
        }
        private static void sn(boolean s, Object o){
            sb.append(s+"\n");
        }
        private static void pr() throws Exception{
            BufferedWriter bw =new BufferedWriter(new OutputStreamWriter(System.out));
            bw.write(sb.toString());
            bw.flush();
        }
        static class Reader{
            final private int BUFFER_SIZE = 1 << 16;
            private DataInputStream din;
            private byte[] buffer;
            private int bufferPointer, bytesRead;

            public Reader()
            {
                din = new DataInputStream(System.in);
                buffer = new byte[BUFFER_SIZE];
                bufferPointer = bytesRead = 0;
            }

            public Reader(String file_name) throws IOException
            {
                din = new DataInputStream(new FileInputStream(file_name));
                buffer = new byte[BUFFER_SIZE];
                bufferPointer = bytesRead = 0;
            }
            private boolean isSpaceChar(int c) { return !(c >= 33 && c <= 126); }
            public String readLine() throws IOException
            {
                int  fs;
                while( isSpaceChar(fs =read())){
                }
                byte[] buf = new byte[128]; // line length
                int cnt = 0, c;
                buf[cnt++] = (byte) fs;
                while ((c = read()) != -1)
                {
                    if (c == '\n')
                        break;
                    buf[cnt++] = (byte) c;
                }
                return new String(buf, 0, cnt);
            }

            public int nextInt() throws IOException
            {
                int ret = 0;
                byte c = read();
                while (c <= ' ')
                    c = read();
                boolean neg = (c == '-');
                if (neg)
                    c = read();
                do
                {
                    ret = ret * 10 + c - '0';
                }  while ((c = read()) >= '0' && c <= '9');

                if (neg)
                    return -ret;
                return ret;
            }

            public long nextLong() throws IOException
            {
                long ret = 0;
                byte c = read();
                while (c <= ' ')
                    c = read();
                boolean neg = (c == '-');
                if (neg)
                    c = read();
                do {
                    ret = ret * 10 + c - '0';
                }
                while ((c = read()) >= '0' && c <= '9');
                if (neg)
                    return -ret;
                return ret;
            }

            public double nextDouble() throws IOException
            {
                double ret = 0, div = 1;
                byte c = read();
                while (c <= ' ')
                    c = read();
                boolean neg = (c == '-');
                if (neg)
                    c = read();

                do {
                    ret = ret * 10 + c - '0';
                }
                while ((c = read()) >= '0' && c <= '9');

                if (c == '.')
                {
                    while ((c = read()) >= '0' && c <= '9')
                    {
                        ret += (c - '0') / (div *= 10);
                    }
                }

                if (neg)
                    return -ret;
                return ret;
            }

            private void fillBuffer() throws IOException
            {
                bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE);
                if (bytesRead == -1)
                    buffer[0] = -1;
            }

            private byte read() throws IOException
            {
                if (bufferPointer == bytesRead)
                    fillBuffer();
                return buffer[bufferPointer++];
            }

            public void close() throws IOException
            {
                if (din == null)
                    return;
                din.close();
            }
        }
        private static boolean isPrime(Integer ii){
            int n = (int)Math.sqrt(ii);
            for(int i=2;i<=n;i++){
                if(ii%i==0){
                    return false;
                }
            }
            return true;
        }
        private static boolean isDigit(int ii){
            return Character.isDigit((char)ii);
        }
        private static long fact(int f){
            if(f==0){
                return 1;
            }
            return (long)f * (long)fact(f-1);
        }
        /*static int ar[] = new int[1000000];
        static {
            Arrays.fill(ar, 1000070);
            ar[0]=0;
            int arrr[] = new int[]{2,3,5,7};
            for(int i=0;i<4;i++){
                for(int ii=0;ii<1000000;ii++){
                    if(ii>=arrr[i]){
                        ar[ii] = Math.min(ar[ii], 1+ar[ii-arrr[i]]);
                    }
                }
            }
        }*/
        /*static{
            Arrays.fill(prime, true);
            for(int p = 2; p*p <=1000070; p++)
            {
                // If prime[p] is not changed, then it is a prime
                if(prime[p] == true)
                {
                    // Update all multiples of p
                    for(int i = p*2; i <= 1000070; i += p)
                        prime[i] = false;
                }
            }
            int nc = 0;
            for(int p = 2; p <=1000070; p++)
            {
                if(prime[p] == true && prime[(p+1)/2] == true)
                {
                    prr[p]+=nc+1;
                    nc = prr[p];
                }
            }
        }*/
        private static Reader r = new Reader();
        private static int ni() throws Exception{
            return r.nextInt();
        }
        private static String ns() throws Exception{
            return r.readLine();
        }
        private static long nl() throws Exception{
            return r.nextLong();
        }
        private static int[] na(int a) throws Exception{
            int arr[] = new int[a];
            for(int i=0;i<a;i++){
                arr[i] = r.nextInt();
            }
            return arr;
        }
        private static boolean isSquare(int a){
            double sqt = Math.sqrt(a);
            return (int)sqt == sqt;
        }
        private static int lSquare(int a){
            double sqt = Math.sqrt(a);
            return (int)sqt * (int) sqt;
        }
        private static int rSquare(int a){
            double sqt = Math.sqrt(a);
            return (int)Math.ceil(sqt) * (int)Math.ceil(sqt);
        }
        private static int parent[] = new int[200005];
        private static boolean visit[] = new boolean[200005];
        private static void init(){
        	for(int i=0;i<200005;i++){
        		parent[i] = 0;
        	}
        	for(int i=0;i<200005;i++){
        		visit[i] = false;
        	}
        }
    	private static void bfs(int size[], int ans, List[] list, int start, int end, Queue<Integer> q){
        	while(!q.isEmpty()){
        		int temp = q.remove();
        		visit[temp] = true;
        		for(int i=0;i<list[temp].size();i++){
        			if(!visit[(int)list[temp].get(i)] && end == (int)list[temp].get(i)){
        				parent[end] = temp;
        				visit[(int)list[temp].get(i)] = true;
        				return;
        			}
        			if(!visit[(int)list[temp].get(i)]){
        				q.add((int)list[temp].get(i));
        				parent[(int)list[temp].get(i)] = temp;
        			}
        		}
        	}
        }
        public static int dfs(List []list, int arr[], int k, int i, int ii){
            if(i==1 && arr[i]!=arr[ii]){
                return -1;
            }
            if(arr[i] == arr[ii]){
                k--;
                if(k==0){
                    return i;
                }
            }
            for(int j=0;j<list[i].size();j++){
                return dfs(list, arr, k, (int)list[i].get(j), ii);
            }
            return -1;
            }
            private static boolean isPerfectSquare(int n){
                if((int)Math.sqrt(n) * (int)Math.sqrt(n) == n){
                    return true;
                }
                return false;
            }
            private static Map<String, Boolean> map =  new HashMap<>();
            static{
                map.put("0 0 0", true);
            }
            private static boolean cany(int n, int nn, int t){
                if(map.containsKey((n)+" "+nn+" "+(t))){
                     return map.get((n)+" "+nn+" "+(t));
                }
                if(n>t || t<0 || n<0 || nn>t || nn<0 || nn+n>t || (nn == n && nn == t)){
                    map.put((n)+" "+nn+" "+(t), false);
                    return map.get((n)+" "+nn+" "+(t));
                }
                if(!map.containsKey((n-1)+" "+nn+" "+(t-1))){
                    map.put((n-1)+" "+nn+" "+(t-1), cany(n-1,nn, t-1));
                }
                if(!map.containsKey((n+1)+" "+nn+" "+(t-1))){
                    map.put((n+1)+" "+nn+" "+(t-1), cany(n+1,nn, t-1));
                }
                if(!map.containsKey(n+" "+(nn-1)+" "+(t-1))){
                    map.put(n+" "+(nn-1)+" "+(t-1), cany(n,nn-1, t-1));
                }
                if(!map.containsKey(n+" "+(nn+1)+" "+(t-1))){
                    map.put(n+" "+(nn+1)+" "+(t-1), cany(n,nn+1, t-1));
                }
                map.put(n+" "+nn+" "+t, map.get((n+1)+" "+nn+" "+(t-1)) || map.get((n-1)+" "+nn+" "+(t-1)) || map.get(n+" "+(nn-1)+" "+(t-1)) || map.get(n+" "+(nn+1)+" "+(t-1)));
                return map.get(n+" "+nn+" "+t);
            }

        private static int dp(int i, int k, int cnt, int arr[]){
            int start = arr[i];
            int ncnt = 0;
    	    for(int ii=i+1;ii<arr.length;ii++){
    	        if(Math.abs(start - arr[ii])<=k){
    	            sn("entered eith "+arr[ii]+" "+start+" "+k+" "+(k - Math.abs(start - arr[i])));
    	            ncnt = Math.max(cnt, dp(ii, k - Math.abs(start - arr[ii]), cnt +  1, arr));
    	        }
    	    }
    	    sn(cnt);
    	    return Math.max(ncnt, cnt);
        }
        private static int ans(int arr[] , int n, int len, int k){
            if(n==len-1 || k<0){
                return 1;
            }
            return Math.max(ans(arr, n+1, len, k), 1+ans(arr, n+1, len, k-arr[n]));
        }
        //BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	//String str = br.readLine();
        //change the length of string!!!!!!!!!!! in readLine()!!!!!!!!!!!!!!!
    	public static void main (String[] args) throws Exception{
    	    int n = ni();
    	    if(n==1){
    	        sn("-1");
    	        return;
    	    }
    	    if(n%2==0){
    	        while(n>1){
    	            s(n--+" ");
    	        }
    	        sn(n);
    	    } else{
    	        sn("-1");
    	    }

    	}
    }


    import java.io.*;
    import java.util.*;
    import java.math.BigInteger;
    public class Main {
        private static StringBuilder sb = new StringBuilder();
        private static void s(String s){
            System.out.print(s);
        }
        private static void s(Double s){
            System.out.print(s);
        }
        private static void s(char s){
            System.out.print(s);
        }
        private static void sn(String s){
            System.out.println(s);
        }
        private static void sn(Boolean s){
            System.out.println(s);
        }
        private static void sn(long s){
            System.out.println(s);
        }
        private static void sn(Double s){
            System.out.println(s);
        }
        private static void sn(String s, Object o){
            sb.append(s+"\n");
        }
        private static void sn(long s, Object o){
            sb.append(s+"\n");
        }
        private static void sn(boolean s, Object o){
            sb.append(s+"\n");
        }
        private static void pr() throws Exception{
            BufferedWriter bw =new BufferedWriter(new OutputStreamWriter(System.out));
            bw.write(sb.toString());
            bw.flush();
        }
        static class Reader{
            final private int BUFFER_SIZE = 1 << 16;
            private DataInputStream din;
            private byte[] buffer;
            private int bufferPointer, bytesRead;

            public Reader()
            {
                din = new DataInputStream(System.in);
                buffer = new byte[BUFFER_SIZE];
                bufferPointer = bytesRead = 0;
            }

            public Reader(String file_name) throws IOException
            {
                din = new DataInputStream(new FileInputStream(file_name));
                buffer = new byte[BUFFER_SIZE];
                bufferPointer = bytesRead = 0;
            }
            private boolean isSpaceChar(int c) { return !(c >= 33 && c <= 126); }
            public String readLine() throws IOException
            {
                int  fs;
                while( isSpaceChar(fs =read())){
                }
                byte[] buf = new byte[128]; // line length
                int cnt = 0, c;
                buf[cnt++] = (byte) fs;
                while ((c = read()) != -1)
                {
                    if (c == '\n')
                        break;
                    buf[cnt++] = (byte) c;
                }
                return new String(buf, 0, cnt);
            }

            public int nextInt() throws IOException
            {
                int ret = 0;
                byte c = read();
                while (c <= ' ')
                    c = read();
                boolean neg = (c == '-');
                if (neg)
                    c = read();
                do
                {
                    ret = ret * 10 + c - '0';
                }  while ((c = read()) >= '0' && c <= '9');

                if (neg)
                    return -ret;
                return ret;
            }

            public long nextLong() throws IOException
            {
                long ret = 0;
                byte c = read();
                while (c <= ' ')
                    c = read();
                boolean neg = (c == '-');
                if (neg)
                    c = read();
                do {
                    ret = ret * 10 + c - '0';
                }
                while ((c = read()) >= '0' && c <= '9');
                if (neg)
                    return -ret;
                return ret;
            }

            public double nextDouble() throws IOException
            {
                double ret = 0, div = 1;
                byte c = read();
                while (c <= ' ')
                    c = read();
                boolean neg = (c == '-');
                if (neg)
                    c = read();

                do {
                    ret = ret * 10 + c - '0';
                }
                while ((c = read()) >= '0' && c <= '9');

                if (c == '.')
                {
                    while ((c = read()) >= '0' && c <= '9')
                    {
                        ret += (c - '0') / (div *= 10);
                    }
                }

                if (neg)
                    return -ret;
                return ret;
            }

            private void fillBuffer() throws IOException
            {
                bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE);
                if (bytesRead == -1)
                    buffer[0] = -1;
            }

            private byte read() throws IOException
            {
                if (bufferPointer == bytesRead)
                    fillBuffer();
                return buffer[bufferPointer++];
            }

            public void close() throws IOException
            {
                if (din == null)
                    return;
                din.close();
            }
        }
        private static boolean isPrime(Integer ii){
            int n = (int)Math.sqrt(ii);
            for(int i=2;i<=n;i++){
                if(ii%i==0){
                    return false;
                }
            }
            return true;
        }
        private static boolean isDigit(int ii){
            return Character.isDigit((char)ii);
        }
        private static long fact(int f){
            if(f==0){
                return 1;
            }
            return (long)f * (long)fact(f-1);
        }
        /*static int ar[] = new int[1000000];
        static {
            Arrays.fill(ar, 1000070);
            ar[0]=0;
            int arrr[] = new int[]{2,3,5,7};
            for(int i=0;i<4;i++){
                for(int ii=0;ii<1000000;ii++){
                    if(ii>=arrr[i]){
                        ar[ii] = Math.min(ar[ii], 1+ar[ii-arrr[i]]);
                    }
                }
            }
        }*/
        /*static{
            Arrays.fill(prime, true);
            for(int p = 2; p*p <=1000070; p++)
            {
                // If prime[p] is not changed, then it is a prime
                if(prime[p] == true)
                {
                    // Update all multiples of p
                    for(int i = p*2; i <= 1000070; i += p)
                        prime[i] = false;
                }
            }
            int nc = 0;
            for(int p = 2; p <=1000070; p++)
            {
                if(prime[p] == true && prime[(p+1)/2] == true)
                {
                    prr[p]+=nc+1;
                    nc = prr[p];
                }
            }
        }*/
        private static Reader r = new Reader();
        private static int ni() throws Exception{
            return r.nextInt();
        }
        private static String ns() throws Exception{
            return r.readLine();
        }
        private static long nl() throws Exception{
            return r.nextLong();
        }
        private static int[] na(int a) throws Exception{
            int arr[] = new int[a];
            for(int i=0;i<a;i++){
                arr[i] = r.nextInt();
            }
            return arr;
        }
        private static boolean isSquare(int a){
            double sqt = Math.sqrt(a);
            return (int)sqt == sqt;
        }
        private static int lSquare(int a){
            double sqt = Math.sqrt(a);
            return (int)sqt * (int) sqt;
        }
        private static int rSquare(int a){
            double sqt = Math.sqrt(a);
            return (int)Math.ceil(sqt) * (int)Math.ceil(sqt);
        }
        private static int parent[] = new int[200005];
        private static boolean visit[] = new boolean[200005];
        private static void init(){
        	for(int i=0;i<200005;i++){
        		parent[i] = 0;
        	}
        	for(int i=0;i<200005;i++){
        		visit[i] = false;
        	}
        }
    	private static void bfs(int size[], int ans, List[] list, int start, int end, Queue<Integer> q){
        	while(!q.isEmpty()){
        		int temp = q.remove();
        		visit[temp] = true;
        		for(int i=0;i<list[temp].size();i++){
        			if(!visit[(int)list[temp].get(i)] && end == (int)list[temp].get(i)){
        				parent[end] = temp;
        				visit[(int)list[temp].get(i)] = true;
        				return;
        			}
        			if(!visit[(int)list[temp].get(i)]){
        				q.add((int)list[temp].get(i));
        				parent[(int)list[temp].get(i)] = temp;
        			}
        		}
        	}
        }
        public static int dfs(List []list, int arr[], int k, int i, int ii){
            if(i==1 && arr[i]!=arr[ii]){
                return -1;
            }
            if(arr[i] == arr[ii]){
                k--;
                if(k==0){
                    return i;
                }
            }
            for(int j=0;j<list[i].size();j++){
                return dfs(list, arr, k, (int)list[i].get(j), ii);
            }
            return -1;
            }
            private static boolean isPerfectSquare(int n){
                if((int)Math.sqrt(n) * (int)Math.sqrt(n) == n){
                    return true;
                }
                return false;
            }
            private static Map<String, Boolean> map =  new HashMap<>();
            static{
                map.put("0 0 0", true);
            }
            private static boolean cany(int n, int nn, int t){
                if(map.containsKey((n)+" "+nn+" "+(t))){
                     return map.get((n)+" "+nn+" "+(t));
                }
                if(n>t || t<0 || n<0 || nn>t || nn<0 || nn+n>t || (nn == n && nn == t)){
                    map.put((n)+" "+nn+" "+(t), false);
                    return map.get((n)+" "+nn+" "+(t));
                }
                if(!map.containsKey((n-1)+" "+nn+" "+(t-1))){
                    map.put((n-1)+" "+nn+" "+(t-1), cany(n-1,nn, t-1));
                }
                if(!map.containsKey((n+1)+" "+nn+" "+(t-1))){
                    map.put((n+1)+" "+nn+" "+(t-1), cany(n+1,nn, t-1));
                }
                if(!map.containsKey(n+" "+(nn-1)+" "+(t-1))){
                    map.put(n+" "+(nn-1)+" "+(t-1), cany(n,nn-1, t-1));
                }
                if(!map.containsKey(n+" "+(nn+1)+" "+(t-1))){
                    map.put(n+" "+(nn+1)+" "+(t-1), cany(n,nn+1, t-1));
                }
                map.put(n+" "+nn+" "+t, map.get((n+1)+" "+nn+" "+(t-1)) || map.get((n-1)+" "+nn+" "+(t-1)) || map.get(n+" "+(nn-1)+" "+(t-1)) || map.get(n+" "+(nn+1)+" "+(t-1)));
                return map.get(n+" "+nn+" "+t);
            }

        private static int dp(int i, int k, int cnt, int arr[]){
            int start = arr[i];
            int ncnt = 0;
    	    for(int ii=i+1;ii<arr.length;ii++){
    	        if(Math.abs(start - arr[ii])<=k){
    	            sn("entered eith "+arr[ii]+" "+start+" "+k+" "+(k - Math.abs(start - arr[i])));
    	            ncnt = Math.max(cnt, dp(ii, k - Math.abs(start - arr[ii]), cnt +  1, arr));
    	        }
    	    }
    	    sn(cnt);
    	    return Math.max(ncnt, cnt);
        }
        private static int ans(int arr[] , int n, int len, int k){
            if(n==len-1 || k<0){
                return 1;
            }
            return Math.max(ans(arr, n+1, len, k), 1+ans(arr, n+1, len, k-arr[n]));
        }
        //BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	//String str = br.readLine();
        //change the length of string!!!!!!!!!!! in readLine()!!!!!!!!!!!!!!!
    	public static void main (String[] args) throws Exception{
    	    int n = ni();
    	    if(n==1){
    	        sn("-1");
    	        return;
    	    }
    	    if(n%2==0){
    	        while(n>1){
    	            s(n--+" ");
    	        }
    	        sn(n);
    	    } else{
    	        int t = (n-1)/2;
    	        while(t-->0){
    	            s(n--+" ");
    	        }
    	        for(int i=1;i<=n;i++){
    	            s(i+" ");
    	        }
    	    }
    	}
    }


    import java.io.*;
    import java.util.*;
    import java.math.BigInteger;
    public class Main {
        private static StringBuilder sb = new StringBuilder();
        private static void s(String s){
            System.out.print(s);
        }
        private static void s(Double s){
            System.out.print(s);
        }
        private static void s(char s){
            System.out.print(s);
        }
        private static void sn(String s){
            System.out.println(s);
        }
        private static void sn(Boolean s){
            System.out.println(s);
        }
        private static void sn(long s){
            System.out.println(s);
        }
        private static void sn(Double s){
            System.out.println(s);
        }
        private static void sn(String s, Object o){
            sb.append(s+"\n");
        }
        private static void sn(long s, Object o){
            sb.append(s+"\n");
        }
        private static void sn(boolean s, Object o){
            sb.append(s+"\n");
        }
        private static void pr() throws Exception{
            BufferedWriter bw =new BufferedWriter(new OutputStreamWriter(System.out));
            bw.write(sb.toString());
            bw.flush();
        }
        static class Reader{
            final private int BUFFER_SIZE = 1 << 16;
            private DataInputStream din;
            private byte[] buffer;
            private int bufferPointer, bytesRead;

            public Reader()
            {
                din = new DataInputStream(System.in);
                buffer = new byte[BUFFER_SIZE];
                bufferPointer = bytesRead = 0;
            }

            public Reader(String file_name) throws IOException
            {
                din = new DataInputStream(new FileInputStream(file_name));
                buffer = new byte[BUFFER_SIZE];
                bufferPointer = bytesRead = 0;
            }
            private boolean isSpaceChar(int c) { return !(c >= 33 && c <= 126); }
            public String readLine() throws IOException
            {
                int  fs;
                while( isSpaceChar(fs =read())){
                }
                byte[] buf = new byte[128]; // line length
                int cnt = 0, c;
                buf[cnt++] = (byte) fs;
                while ((c = read()) != -1)
                {
                    if (c == '\n')
                        break;
                    buf[cnt++] = (byte) c;
                }
                return new String(buf, 0, cnt);
            }

            public int nextInt() throws IOException
            {
                int ret = 0;
                byte c = read();
                while (c <= ' ')
                    c = read();
                boolean neg = (c == '-');
                if (neg)
                    c = read();
                do
                {
                    ret = ret * 10 + c - '0';
                }  while ((c = read()) >= '0' && c <= '9');

                if (neg)
                    return -ret;
                return ret;
            }

            public long nextLong() throws IOException
            {
                long ret = 0;
                byte c = read();
                while (c <= ' ')
                    c = read();
                boolean neg = (c == '-');
                if (neg)
                    c = read();
                do {
                    ret = ret * 10 + c - '0';
                }
                while ((c = read()) >= '0' && c <= '9');
                if (neg)
                    return -ret;
                return ret;
            }

            public double nextDouble() throws IOException
            {
                double ret = 0, div = 1;
                byte c = read();
                while (c <= ' ')
                    c = read();
                boolean neg = (c == '-');
                if (neg)
                    c = read();

                do {
                    ret = ret * 10 + c - '0';
                }
                while ((c = read()) >= '0' && c <= '9');

                if (c == '.')
                {
                    while ((c = read()) >= '0' && c <= '9')
                    {
                        ret += (c - '0') / (div *= 10);
                    }
                }

                if (neg)
                    return -ret;
                return ret;
            }

            private void fillBuffer() throws IOException
            {
                bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE);
                if (bytesRead == -1)
                    buffer[0] = -1;
            }

            private byte read() throws IOException
            {
                if (bufferPointer == bytesRead)
                    fillBuffer();
                return buffer[bufferPointer++];
            }

            public void close() throws IOException
            {
                if (din == null)
                    return;
                din.close();
            }
        }
        private static boolean isPrime(Integer ii){
            int n = (int)Math.sqrt(ii);
            for(int i=2;i<=n;i++){
                if(ii%i==0){
                    return false;
                }
            }
            return true;
        }
        private static boolean isDigit(int ii){
            return Character.isDigit((char)ii);
        }
        private static long fact(int f){
            if(f==0){
                return 1;
            }
            return (long)f * (long)fact(f-1);
        }
        /*static int ar[] = new int[1000000];
        static {
            Arrays.fill(ar, 1000070);
            ar[0]=0;
            int arrr[] = new int[]{2,3,5,7};
            for(int i=0;i<4;i++){
                for(int ii=0;ii<1000000;ii++){
                    if(ii>=arrr[i]){
                        ar[ii] = Math.min(ar[ii], 1+ar[ii-arrr[i]]);
                    }
                }
            }
        }*/
        /*static{
            Arrays.fill(prime, true);
            for(int p = 2; p*p <=1000070; p++)
            {
                // If prime[p] is not changed, then it is a prime
                if(prime[p] == true)
                {
                    // Update all multiples of p
                    for(int i = p*2; i <= 1000070; i += p)
                        prime[i] = false;
                }
            }
            int nc = 0;
            for(int p = 2; p <=1000070; p++)
            {
                if(prime[p] == true && prime[(p+1)/2] == true)
                {
                    prr[p]+=nc+1;
                    nc = prr[p];
                }
            }
        }*/
        private static Reader r = new Reader();
        private static int ni() throws Exception{
            return r.nextInt();
        }
        private static String ns() throws Exception{
            return r.readLine();
        }
        private static long nl() throws Exception{
            return r.nextLong();
        }
        private static int[] na(int a) throws Exception{
            int arr[] = new int[a];
            for(int i=0;i<a;i++){
                arr[i] = r.nextInt();
            }
            return arr;
        }
        private static boolean isSquare(int a){
            double sqt = Math.sqrt(a);
            return (int)sqt == sqt;
        }
        private static int lSquare(int a){
            double sqt = Math.sqrt(a);
            return (int)sqt * (int) sqt;
        }
        private static int rSquare(int a){
            double sqt = Math.sqrt(a);
            return (int)Math.ceil(sqt) * (int)Math.ceil(sqt);
        }
        private static int parent[] = new int[200005];
        private static boolean visit[] = new boolean[200005];
        private static void init(){
        	for(int i=0;i<200005;i++){
        		parent[i] = 0;
        	}
        	for(int i=0;i<200005;i++){
        		visit[i] = false;
        	}
        }
    	private static void bfs(int size[], int ans, List[] list, int start, int end, Queue<Integer> q){
        	while(!q.isEmpty()){
        		int temp = q.remove();
        		visit[temp] = true;
        		for(int i=0;i<list[temp].size();i++){
        			if(!visit[(int)list[temp].get(i)] && end == (int)list[temp].get(i)){
        				parent[end] = temp;
        				visit[(int)list[temp].get(i)] = true;
        				return;
        			}
        			if(!visit[(int)list[temp].get(i)]){
        				q.add((int)list[temp].get(i));
        				parent[(int)list[temp].get(i)] = temp;
        			}
        		}
        	}
        }
        public static int dfs(List []list, int arr[], int k, int i, int ii){
            if(i==1 && arr[i]!=arr[ii]){
                return -1;
            }
            if(arr[i] == arr[ii]){
                k--;
                if(k==0){
                    return i;
                }
            }
            for(int j=0;j<list[i].size();j++){
                return dfs(list, arr, k, (int)list[i].get(j), ii);
            }
            return -1;
            }
            private static boolean isPerfectSquare(int n){
                if((int)Math.sqrt(n) * (int)Math.sqrt(n) == n){
                    return true;
                }
                return false;
            }
            private static Map<String, Boolean> map =  new HashMap<>();
            static{
                map.put("0 0 0", true);
            }
            private static boolean cany(int n, int nn, int t){
                if(map.containsKey((n)+" "+nn+" "+(t))){
                     return map.get((n)+" "+nn+" "+(t));
                }
                if(n>t || t<0 || n<0 || nn>t || nn<0 || nn+n>t || (nn == n && nn == t)){
                    map.put((n)+" "+nn+" "+(t), false);
                    return map.get((n)+" "+nn+" "+(t));
                }
                if(!map.containsKey((n-1)+" "+nn+" "+(t-1))){
                    map.put((n-1)+" "+nn+" "+(t-1), cany(n-1,nn, t-1));
                }
                if(!map.containsKey((n+1)+" "+nn+" "+(t-1))){
                    map.put((n+1)+" "+nn+" "+(t-1), cany(n+1,nn, t-1));
                }
                if(!map.containsKey(n+" "+(nn-1)+" "+(t-1))){
                    map.put(n+" "+(nn-1)+" "+(t-1), cany(n,nn-1, t-1));
                }
                if(!map.containsKey(n+" "+(nn+1)+" "+(t-1))){
                    map.put(n+" "+(nn+1)+" "+(t-1), cany(n,nn+1, t-1));
                }
                map.put(n+" "+nn+" "+t, map.get((n+1)+" "+nn+" "+(t-1)) || map.get((n-1)+" "+nn+" "+(t-1)) || map.get(n+" "+(nn-1)+" "+(t-1)) || map.get(n+" "+(nn+1)+" "+(t-1)));
                return map.get(n+" "+nn+" "+t);
            }

        private static int dp(int i, int k, int cnt, int arr[]){
            int start = arr[i];
            int ncnt = 0;
    	    for(int ii=i+1;ii<arr.length;ii++){
    	        if(Math.abs(start - arr[ii])<=k){
    	            sn("entered eith "+arr[ii]+" "+start+" "+k+" "+(k - Math.abs(start - arr[i])));
    	            ncnt = Math.max(cnt, dp(ii, k - Math.abs(start - arr[ii]), cnt +  1, arr));
    	        }
    	    }
    	    sn(cnt);
    	    return Math.max(ncnt, cnt);
        }
        private static int ans(int arr[] , int n, int len, int k){
            if(n==len-1 || k<0){
                return 1;
            }
            return Math.max(ans(arr, n+1, len, k), 1+ans(arr, n+1, len, k-arr[n]));
        }
        //BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	//String str = br.readLine();
        //change the length of string!!!!!!!!!!! in readLine()!!!!!!!!!!!!!!!
    	public static void main (String[] args) throws Exception{
    	    int n = ni();
    	    int t = n-2;
    	    for(int i=t;i>=1;i--){
    	        s(i+" ");
    	    }
    	    s((n)+"");
    	    s(" "+(n-1));
    	}
    }


    import java.io.*;
    import java.util.*;
    import java.math.BigInteger;
    public class Main {
        private static StringBuilder sb = new StringBuilder();
        private static void s(String s){
            System.out.print(s);
        }
        private static void s(Double s){
            System.out.print(s);
        }
        private static void s(char s){
            System.out.print(s);
        }
        private static void sn(String s){
            System.out.println(s);
        }
        private static void sn(Boolean s){
            System.out.println(s);
        }
        private static void sn(long s){
            System.out.println(s);
        }
        private static void sn(Double s){
            System.out.println(s);
        }
        private static void sn(String s, Object o){
            sb.append(s+"\n");
        }
        private static void sn(long s, Object o){
            sb.append(s+"\n");
        }
        private static void sn(boolean s, Object o){
            sb.append(s+"\n");
        }
        private static void pr() throws Exception{
            BufferedWriter bw =new BufferedWriter(new OutputStreamWriter(System.out));
            bw.write(sb.toString());
            bw.flush();
        }
        static class Reader{
            final private int BUFFER_SIZE = 1 << 16;
            private DataInputStream din;
            private byte[] buffer;
            private int bufferPointer, bytesRead;

            public Reader()
            {
                din = new DataInputStream(System.in);
                buffer = new byte[BUFFER_SIZE];
                bufferPointer = bytesRead = 0;
            }

            public Reader(String file_name) throws IOException
            {
                din = new DataInputStream(new FileInputStream(file_name));
                buffer = new byte[BUFFER_SIZE];
                bufferPointer = bytesRead = 0;
            }
            private boolean isSpaceChar(int c) { return !(c >= 33 && c <= 126); }
            public String readLine() throws IOException
            {
                int  fs;
                while( isSpaceChar(fs =read())){
                }
                byte[] buf = new byte[128]; // line length
                int cnt = 0, c;
                buf[cnt++] = (byte) fs;
                while ((c = read()) != -1)
                {
                    if (c == '\n')
                        break;
                    buf[cnt++] = (byte) c;
                }
                return new String(buf, 0, cnt);
            }

            public int nextInt() throws IOException
            {
                int ret = 0;
                byte c = read();
                while (c <= ' ')
                    c = read();
                boolean neg = (c == '-');
                if (neg)
                    c = read();
                do
                {
                    ret = ret * 10 + c - '0';
                }  while ((c = read()) >= '0' && c <= '9');

                if (neg)
                    return -ret;
                return ret;
            }

            public long nextLong() throws IOException
            {
                long ret = 0;
                byte c = read();
                while (c <= ' ')
                    c = read();
                boolean neg = (c == '-');
                if (neg)
                    c = read();
                do {
                    ret = ret * 10 + c - '0';
                }
                while ((c = read()) >= '0' && c <= '9');
                if (neg)
                    return -ret;
                return ret;
            }

            public double nextDouble() throws IOException
            {
                double ret = 0, div = 1;
                byte c = read();
                while (c <= ' ')
                    c = read();
                boolean neg = (c == '-');
                if (neg)
                    c = read();

                do {
                    ret = ret * 10 + c - '0';
                }
                while ((c = read()) >= '0' && c <= '9');

                if (c == '.')
                {
                    while ((c = read()) >= '0' && c <= '9')
                    {
                        ret += (c - '0') / (div *= 10);
                    }
                }

                if (neg)
                    return -ret;
                return ret;
            }

            private void fillBuffer() throws IOException
            {
                bytesRead = din.read(buffer, bufferPointer = 0, BUFFER_SIZE);
                if (bytesRead == -1)
                    buffer[0] = -1;
            }

            private byte read() throws IOException
            {
                if (bufferPointer == bytesRead)
                    fillBuffer();
                return buffer[bufferPointer++];
            }

            public void close() throws IOException
            {
                if (din == null)
                    return;
                din.close();
            }
        }
        private static boolean isPrime(Integer ii){
            int n = (int)Math.sqrt(ii);
            for(int i=2;i<=n;i++){
                if(ii%i==0){
                    return false;
                }
            }
            return true;
        }
        private static boolean isDigit(int ii){
            return Character.isDigit((char)ii);
        }
        private static long fact(int f){
            if(f==0){
                return 1;
            }
            return (long)f * (long)fact(f-1);
        }
        /*static int ar[] = new int[1000000];
        static {
            Arrays.fill(ar, 1000070);
            ar[0]=0;
            int arrr[] = new int[]{2,3,5,7};
            for(int i=0;i<4;i++){
                for(int ii=0;ii<1000000;ii++){
                    if(ii>=arrr[i]){
                        ar[ii] = Math.min(ar[ii], 1+ar[ii-arrr[i]]);
                    }
                }
            }
        }*/
        /*static{
            Arrays.fill(prime, true);
            for(int p = 2; p*p <=1000070; p++)
            {
                // If prime[p] is not changed, then it is a prime
                if(prime[p] == true)
                {
                    // Update all multiples of p
                    for(int i = p*2; i <= 1000070; i += p)
                        prime[i] = false;
                }
            }
            int nc = 0;
            for(int p = 2; p <=1000070; p++)
            {
                if(prime[p] == true && prime[(p+1)/2] == true)
                {
                    prr[p]+=nc+1;
                    nc = prr[p];
                }
            }
        }*/
        private static Reader r = new Reader();
        private static int ni() throws Exception{
            return r.nextInt();
        }
        private static String ns() throws Exception{
            return r.readLine();
        }
        private static long nl() throws Exception{
            return r.nextLong();
        }
        private static int[] na(int a) throws Exception{
            int arr[] = new int[a];
            for(int i=0;i<a;i++){
                arr[i] = r.nextInt();
            }
            return arr;
        }
        private static boolean isSquare(int a){
            double sqt = Math.sqrt(a);
            return (int)sqt == sqt;
        }
        private static int lSquare(int a){
            double sqt = Math.sqrt(a);
            return (int)sqt * (int) sqt;
        }
        private static int rSquare(int a){
            double sqt = Math.sqrt(a);
            return (int)Math.ceil(sqt) * (int)Math.ceil(sqt);
        }
        private static int parent[] = new int[200005];
        private static boolean visit[] = new boolean[200005];
        private static void init(){
        	for(int i=0;i<200005;i++){
        		parent[i] = 0;
        	}
        	for(int i=0;i<200005;i++){
        		visit[i] = false;
        	}
        }
    	private static void bfs(int size[], int ans, List[] list, int start, int end, Queue<Integer> q){
        	while(!q.isEmpty()){
        		int temp = q.remove();
        		visit[temp] = true;
        		for(int i=0;i<list[temp].size();i++){
        			if(!visit[(int)list[temp].get(i)] && end == (int)list[temp].get(i)){
        				parent[end] = temp;
        				visit[(int)list[temp].get(i)] = true;
        				return;
        			}
        			if(!visit[(int)list[temp].get(i)]){
        				q.add((int)list[temp].get(i));
        				parent[(int)list[temp].get(i)] = temp;
        			}
        		}
        	}
        }
        public static int dfs(List []list, int arr[], int k, int i, int ii){
            if(i==1 && arr[i]!=arr[ii]){
                return -1;
            }
            if(arr[i] == arr[ii]){
                k--;
                if(k==0){
                    return i;
                }
            }
            for(int j=0;j<list[i].size();j++){
                return dfs(list, arr, k, (int)list[i].get(j), ii);
            }
            return -1;
            }
            private static boolean isPerfectSquare(int n){
                if((int)Math.sqrt(n) * (int)Math.sqrt(n) == n){
                    return true;
                }
                return false;
            }
            private static Map<String, Boolean> map =  new HashMap<>();
            static{
                map.put("0 0 0", true);
            }
            private static boolean cany(int n, int nn, int t){
                if(map.containsKey((n)+" "+nn+" "+(t))){
                     return map.get((n)+" "+nn+" "+(t));
                }
                if(n>t || t<0 || n<0 || nn>t || nn<0 || nn+n>t || (nn == n && nn == t)){
                    map.put((n)+" "+nn+" "+(t), false);
                    return map.get((n)+" "+nn+" "+(t));
                }
                if(!map.containsKey((n-1)+" "+nn+" "+(t-1))){
                    map.put((n-1)+" "+nn+" "+(t-1), cany(n-1,nn, t-1));
                }
                if(!map.containsKey((n+1)+" "+nn+" "+(t-1))){
                    map.put((n+1)+" "+nn+" "+(t-1), cany(n+1,nn, t-1));
                }
                if(!map.containsKey(n+" "+(nn-1)+" "+(t-1))){
                    map.put(n+" "+(nn-1)+" "+(t-1), cany(n,nn-1, t-1));
                }
                if(!map.containsKey(n+" "+(nn+1)+" "+(t-1))){
                    map.put(n+" "+(nn+1)+" "+(t-1), cany(n,nn+1, t-1));
                }
                map.put(n+" "+nn+" "+t, map.get((n+1)+" "+nn+" "+(t-1)) || map.get((n-1)+" "+nn+" "+(t-1)) || map.get(n+" "+(nn-1)+" "+(t-1)) || map.get(n+" "+(nn+1)+" "+(t-1)));
                return map.get(n+" "+nn+" "+t);
            }

        private static int dp(int i, int k, int cnt, int arr[]){
            int start = arr[i];
            int ncnt = 0;
    	    for(int ii=i+1;ii<arr.length;ii++){
    	        if(Math.abs(start - arr[ii])<=k){
    	            sn("entered eith "+arr[ii]+" "+start+" "+k+" "+(k - Math.abs(start - arr[i])));
    	            ncnt = Math.max(cnt, dp(ii, k - Math.abs(start - arr[ii]), cnt +  1, arr));
    	        }
    	    }
    	    sn(cnt);
    	    return Math.max(ncnt, cnt);
        }
        private static int ans(int arr[] , int n, int len, int k){
            if(n==len-1 || k<0){
                return 1;
            }
            return Math.max(ans(arr, n+1, len, k), 1+ans(arr, n+1, len, k-arr[n]));
        }
        //BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	//String str = br.readLine();
        //change the length of string!!!!!!!!!!! in readLine()!!!!!!!!!!!!!!!
    	public static void main (String[] args) throws Exception{
    	    int n = ni();
    	    if(n==1){
    	        sn("-1");
    	        return;
    	    }
    	    if(n%2==0){
    	        while(n>1){
    	            s(n--+" ");
    	        }
    	        sn(n);
    	    } else{
    	        int t = (n-1)/2;
    	        while(t-->0){
    	            s(n--+" ");
    	        }
    	        for(int i=1;i<=n;i++){
    	            s(i+" ");
    	        }
    	    }

    	}
    }


import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(in.readLine());
        if(n==1){
            System.out.println(-1);
            return;
        }
        int[] arr = new int[n];
        for(int i=1;i<=n;i+=2){
            arr[i-1] = i+1;
            arr[i] = i;
        }
        for(int i=0;i<n;i++)
            System.out.print(arr[i]+" ");
        System.out.println();
    }
}


import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(in.readLine());
        if(n%2==1){
            System.out.println(-1);
            return;
        }
        int[] arr = new int[n];
        for(int i=1;i<=n;i+=2){
            arr[i-1] = i+1;
            arr[i] = i;
        }
        for(int i=0;i<n;i++)
            System.out.print(arr[i]+" ");
        System.out.println();
    }
}


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class pre381
{
    static class FastReader {
        BufferedReader br;
        StringTokenizer st;

        public FastReader() {
            br = new BufferedReader(new
                    InputStreamReader(System.in));
        }

        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }

        int nextInt() {
            return Integer.parseInt(next());
        }

        long nextLong() {
            return Long.parseLong(next());
        }

        double nextDouble() {
            return Double.parseDouble(next());
        }

        String nextLine() {
            String str = "";
            try {
                str = br.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return str;
        }
    }

    public static void main(String args[])
    {
        FastReader obj = new FastReader();
        int n = obj.nextInt();
        if(n%2!=0 || n==1) System.out.println(-1);
        else
            for(int i=n;i>=1;i--) System.out.print(i+" ");
    }
}


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class pre381
{
    static class FastReader {
        BufferedReader br;
        StringTokenizer st;

        public FastReader() {
            br = new BufferedReader(new
                    InputStreamReader(System.in));
        }

        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }

        int nextInt() {
            return Integer.parseInt(next());
        }

        long nextLong() {
            return Long.parseLong(next());
        }

        double nextDouble() {
            return Double.parseDouble(next());
        }

        String nextLine() {
            String str = "";
            try {
                str = br.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return str;
        }
    }

    public static void main(String args[])
    {
        FastReader obj = new FastReader();
        int n = obj.nextInt();
        if(n==1) System.out.println(-1);
        else
            for(int i=n;i>=1;i--) System.out.print(i+" ");
    }
}


import java.util.Scanner;

public class Algorithms {
static  Scanner sc=new Scanner(System.in);
  public static void main(String[] args) {

   int x=sc.nextInt();
   int y;
   int r[]=new int[x];

      if(x%2==1){
          System.out.println("-1");
          return;
      }

      for(int i=0;i<x;i++){
       r[i]=++i;
       --i;
        }

  for(int i=0;i<x;i+=2)
  {
      y=r[i];
      r[i]=r[++i];
      --i;
      r[++i]=y;
      --i;

 }
  for(int g:r)
          System.out.println(g);
  }
}


import java.util.Scanner;

public class Algorithms {
static  Scanner sc=new Scanner(System.in);
  public static void main(String[] args) {

   int x=sc.nextInt();
   int y;
   int r[]=new int[x];

      if(x==1){
          System.out.println("-1");
          return;
      }

      for(int i=0;i<x;i++){
       r[i]=++i;
       --i;
        }

  for(int i=0;i<x-1;i+=2)
  {
      y=r[i];
      r[i]=r[++i];
      --i;
      r[++i]=y;
      --i;

 }
  for(int g:r)
          System.out.println(g);
  }
}


import java.util.Scanner;

public class Algorithms {
static  Scanner sc=new Scanner(System.in);
  public static void main(String[] args) {

   int x=sc.nextInt();
   int y;
   int r[]=new int[x];

      if(x==1){
          System.out.println("-1");
          return;
      }

      for(int i=0;i<x;i++){
       r[i]=++i;
       --i;
        }

  for(int i=0;i<x;i+=2)
  {
      y=r[i];
      r[i]=r[++i];
      --i;
      r[++i]=y;
      --i;

 }
  for(int g:r)
          System.out.println(g);
  }
}


import java.math.BigInteger;
import java.util.HashSet;
import java.util.Scanner;
public class justanotherday {
public static void main(String[] args) {
	Scanner s=new Scanner(System.in);
	String line=s.nextLine();
	int n=Integer.parseInt(line);
	if(n==1) {
		System.out.println("-1");
		return;
	}
	for (int i = 0; i < n; i++) {
		System.out.print(n+" ");n--;
	}

}}


import java.math.BigInteger;
import java.util.HashSet;
import java.util.Scanner;
public class justanotherday {
public static void main(String[] args) {
	Scanner s=new Scanner(System.in);
	String line=s.nextLine();
	int n=Integer.parseInt(line);
	if(n==1) {
		System.out.println("-1");
		return;
	}
	int x=n;
	for (int i = 0; i < x; i++) {
		System.out.print(n+" ");n--;
	}

}}


import java.math.BigInteger;
import java.util.HashSet;
import java.util.Scanner;
public class justanotherday {
public static void main(String[] args) {
	Scanner s=new Scanner(System.in);
	String line=s.nextLine();
	int n=Integer.parseInt(line);
	if(n==1||n%2==1) {
		System.out.println("-1");
		return;
	}
	int x=n;
	for (int i = 0; i < x; i++) {
		System.out.print(n+" ");n--;
	}

}}