#include <stdio.h>
#include <vector>
#include <algorithm>
#include <math.h>
#include <string>
#include <map>

int n,p,x,i,s,count[26],h,c1,c0;
char c[10000];

void sol(){
    if(n<=2){
        printf("-1\n");
        return;
    }
    for(i=n;i>0;i--)printf("%d ",i);
    printf("\n");
}

int main(){
    #pragma comment(linker, "/STACK:16777216")
    #ifndef ONLINE_JUDGE
    freopen("input.txt","rt",stdin);
    freopen("output.txt","wt",stdout);
    #endif
    while(scanf("%d",&n)!=EOF)sol();
}

//████████████████████████████████████████/         ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██
//█░░░░░░██░░░░░░█░░░░░░░░░░░░░░█░░░░░░███/       ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██
//█░░▄▀░░██░░▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░███/         ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██
//█░░▄▀░░██░░▄▀░░█░░▄▀░░░░░░░░░░█░░▄▀░░███/       ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██
//█░░▄▀░░██░░▄▀░░█░░▄▀░░█████████░░▄▀░░███/         ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██
//█░░▄▀░░░░░░▄▀░░█░░▄▀░░░░░░░░░░█░░▄▀░░███/       ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██
//█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░███/         ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██
//█░░▄▀░░░░░░▄▀░░█░░░░░░░░░░▄▀░░█░░▄▀░░███////////██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██
//█░░▄▀░░██░░▄▀░░█████████░░▄▀░░█░░▄▀░░██████████/  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██
//█░░▄▀░░██░░▄▀░░█░░░░░░░░░░▄▀░░█░░▄▀░░░░░░░░░░██/██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██
//█░░▄▀░░██░░▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░██/  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██
//█░░░░░░██░░░░░░█░░░░░░░░░░░░░░█░░░░░░░░░░░░░░██/██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██
//███████████████████████████████████████████████/  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██  ██
/*<0>!<0>!<0>!<0>!<0>!<0>!<0>!<0>!<0>!<0>!<0>!<0> ██  ██  ██  ██  ██  ██  ██  ██  ██  ██                         */

#include <bits/stdc++.h>
//#include <fstream>
//#include <windows.h>
//#include <conio.h>
//#include <graphics.h>
//#define colr(x) ;    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x);
//#define LL long long
//#define WAT(x) cout << (#x) << " is " << (x) << endl
//#define nice(N) log10(N) + 1;
//#define NON(f) !(cin >> f)
//binary_search(v.begin(),v.end(),-1)
// copy(v.begin(), v.end(), ostream_iterator<int>(cout," ") ) ;
// cout << fixed << setprecision(0)
#define pi 3.14159265359
#define mapo max_element(v.begin(),v.end())-v.begin()
#define ll long long
#define lcm(a,b)  (a*b)/ __gcd(a,b)
///#if !defined(__geeksforgeeks)
//#error "Geeksforgeeks hasn't been defined yet".
///#endif

using namespace std;
bool isprime(ll x)
{   ll z = x;
    x = sqrt(x) + 0.5;
    for(ll o=2;o<=x;o++)
    {
        if(z%o==0){return false;}
    }
    return true;
}
bool isfo(ll x=0)
{ double o,z;
     o =sqrt(5*x*x-4);
     z =sqrt(5*x*x+4);

    if(o == (int)o || z == (int)z){return true;}
    else{return false;}

}
//_kbhit()
//_getch()

void nice(int a,int b)
{
    a=1;
    b=2;
}
vector<int>v(1,0);
int geno()
{
    static int i = 0;
    i++;
    cout<<i<<" ";
    v.pop_back();
    return i;

}
int main()
{
ios::sync_with_stdio(false);//cin.tie(NULL);
//cin.exceptions(cin.failbit);
ll x;
cin>>x;
if(x<=2){cout<<-1;}
else{
    for(int o=x;o>=1;o--)
    {cout<<o<<" ";

    }
}

return 0;
}

#include <iostream>
using namespace std ;
int main ()
{
    int X;
    cin >>X;
    if(X==1||X==2)
        cout<<-1<<endl;
    else
    {
    for(int i=X;i>=1;i--)
    {
        cout<<i;
        if (i!=1)
            cout<<" ";
    }

cout<<endl;
    }

    return 0;
}

#include <iostream>
using namespace std ;
int main ()
{
    int X;
    cin >>X;
    if(X==1||X==2)
        cout<<-1<<endl;
    else
    {
    for(int i=X;i>=1;i--)
    {
        cout<<i;
        if (i!=1)
            cout<<" ";
    }
    cout<<endl;
    }

    return 0;
}

#include <iostream>

using namespace std;

int main()
{
	int n;
	cin >> n;
	if (n > 2)
	{
		for (int i = 2; i <= n; i++)
		{
			cout << i << " ";
		}
		cout << 1 << endl;
	}
	else
	{
		cout << -1 << endl;
	}
return 0;
}

#include <bits/stdc++.h>
#define fr(a, b, c) for(int a = b; a < c; ++a)
#define dbg(x) cerr << ">>> " << x << endl;
#define _ << ", " <<

using namespace std;
typedef long long ll;

int a[51];
int main() {
  ios::sync_with_stdio(0);cin.tie(0);
  int n;
  cin >> n;
  if(n <= 2) cout << -1 << endl;
  else {
    cout << "2 3 1 ";
    fr(i, 4, n + 1) {
      cout << i << ' ';
    }
    cout << endl;
  }

  return 0;
}
// 1520612783949

#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
#include <queue>
#include <set>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cctype>
#include <sstream>

using namespace std;

vector<long long> V;

int main()
{
    ios_base::sync_with_stdio(false);

    //freopen("greetings.in","r",stdin);
    //freopen("greetings.out","w",stdout);

    long long n;
    string S;

    cin>>n;

    if(n == 1 || n == 2)
    {
        cout<<"-1"<<endl;
        return 0;
    }

    for(int k=n;k>0;k--)
    {
        //int x;
        //cin>>x;
        cout<<k<<" ";
    }

    return 0;
}

#include<bits/stdc++.h>
#define ll          long long
#define pb          push_back
#define pii         pair<ll int,ll int>
#define vi          vector<ll int>
#define all(a)      (a).begin(),(a).end()
#define F           first
#define S           second
#define sz(x)       (ll int)x.size()
#define mod        1000000007
#define rep(i,a,b)	for(ll int i=a;i<b;i++)
#define lbnd        lower_bound
#define ubnd        upper_bound
#define bs          binary_search
#define mp          make_pair
#define	endl		'\n'
using namespace std;
#define N  100005

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int t =1;
//	cin>> t;
	while(t--)
	{
		int n;
		cin >> n ;
	    if(n <= 2)
			cout << -1 <<endl;
		else{

			for(int i = n ; i >=1 ;i--){

				cout << i << " ";
			}

		}

	}

	return 0;
}

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cstring>

#include <vector>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <algorithm>
using namespace std;

#define veci vector<int>

int nextInt(){
  int x;
  scanf("%d",&x);
  return x;
}

void nextStr(char *s){
  scanf("%s",s);
}

void solve();

int main(){

  #ifdef LOCAL_TEST
        freopen("input.txt","r",stdin);
        freopen("output.txt","w",stdout);
    #endif

    solve();

    return 0;
}

void solve(){

    int n=nextInt();

    if(n<=2){
        puts("-1");
    }else{
        for (int i = 0; i < n-1; i++) {
            printf("100 ");
        }
        printf("1");
    }
}

#include <bits/stdc++.h>
using namespace std;
#define ll long long

int main() {
    int n; cin >> n;
    if (n < 3)cout << -1;
    else {
        cout << "3 2 1 ";
        for (int i = 4; i <= n; i++) {
            cout << i << ' ';
        }
    }
    return 0;
}

#include<cstdio>
#include<algorithm>

using namespace std;

int main()
{
    int n,i,k,t;
    int A[51], B[51];
    while(scanf("%d", &n)==1)
    {
        for(i=0; i<n; i++)
        {
            A[i]=n-i;
        }
        for(i=0; i<n-1; i++)
        {
            for(k=i; k<n-1; k++)
            {
                if(A[k]>A[k+1])
                {
                    t=A[k];
                    A[k]=A[k+1];
                    A[k+1]=t;
                }
            }
        }
        for(i=0; i<n; i++)
        {
            if(A[i] != (i+1)) break;
        }
        if(i==n) printf("-1\n");
        else
        {
            printf("%d", n);
            for(i=n-1; i>0; i--) printf(" %d", i);
            printf("\n");
        }
    }
    return 0;
}

#include <iostream>
#include <string>
#include <math.h>
#include <algorithm>
#include <vector>

using namespace std;

int main()
{
	ios::sync_with_stdio(false);

	int n = 0;
	cin >> n;
	if (n <= 2) {
		cout << "-1";
		return 0;
	}
	vector<int>a(n, 0);

	for (int i = 0; i < n; i++) {
		a[i] = n - i;
		cout << a[i] << " ";
	}

	return 0;
}

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin >> n;
    if(n <= 2)
    cout << -1;
    else{
        cout << 5 << " " << 4 << " " << 3<< " ";
        for(int i= 0; i < n-3; i++){
        cout << 1 << " ";
        }
    }
   return 0;
}

#include <iostream>
#include <algorithm>
using namespace std;
int main(){
	int n;
	cin>>n;
	if(n<3) cout<<-1;
	else for(int i=n; i>=1; i--) cout<<i<<" ";
}

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <cmath>
#include <set>
#include <map>
#include <vector>
#include <queue>
#include <stack>
using namespace std;
int main()
{
    int n;
    scanf("%d",&n);
    if(n<3)
        printf("-1\n");
    else
    {
        for(int i=n;i;i--)
            printf("%d ",i);
        printf("\n");
    }
    return 0;
}

#include<stdio.h>
int main()
{
    long n;
    while(~scanf("%ld",&n))
    {
        long i;
        if(n<3)
        printf("-1");
        else
        for(i=n;i>=1;i--)
        printf("%ld ",i);
        printf("\n");
    }
    return 0;
}

#include <iostream>

using namespace std;

int n;

int main(){
	cin >> n;
	if ( n <= 2 ){
		cout << -1;
		return 0;
	}
	for ( int i = 0; i < n; i++ )
		cout << 2*n - i << ' ';
	return 0;
}

#include <bits/stdc++.h>

using namespace std;

int main() {

	int n;

	scanf("%d",&n);

	if(n<=2) printf("%d",-1);

	else for(int i=1;i<=n;i++){

		printf(" %d",n-i+1);

	}

	return 0;

}

/*   KAYRAT   ISAEV   */

#include<bits/stdc++.h>
#define pi 3.141592653589793

using namespace std;

int main()
{
    int n;
    cin >> n;
    if(n < 3){
    	cout << -1 ;
    	return 0;
    }
    else{
    for(int i = n; i >= 1; i--)
    {
    cout << i << " ";
    }
    }
    return 0;
}

#include <iostream>

using namespace std;

int main() {
    int n; cin >> n;
    if(n < 3) {
        cout << -1 << endl;
    } else {
        while(n--) {
            cout << (n + 1);
            if(n != 0) cout << " ";
        }
        cout << endl;
    }

    return 0;
}

#define _CRT_SECURE_NO_DEPRECATE
#define _SECURE_SCL 0
#pragma comment(linker, "/STACK:200000000")

#include <algorithm>
#include <bitset>
#include <cassert>
#include <cctype>
#include <complex>
#include <ctime>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <deque>
#include <functional>
#include <fstream>
#include <iostream>
#include <map>
#include <memory.h>
#include <numeric>
#include <queue>
#include <set>
#include <stack>
#include <list>
#include <string>
#include <sstream>
#include <vector>
#include <utility>
#include <cmath>
using namespace std;

#define pb push_back
#define mp make_pair
#define mset(mas,val) memset(mas,val,sizeof(mas))
#define sz(a) (int)(a).size()
#define all(a) (a).begin(), (a).end()
#define rall(a) (a).rbegin(), (a).rend()

#define forn(i,n) for (int i=0; i<int(n); ++i)
#define fornd(i,n) for (int i=int(n)-1; i>=0; --i)
#define forab(i,a,b) for (int i=int(a); i<int(b); ++i)

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;

const int INF = (int) 1e9;
const long long INF64 = (long long) 1e18;
const long double eps = 1e-9;
const long double pi = 3.14159265358979323846;

int n, m;
vector < pair<int,int> > b;
bool read() {
 	return (cin >> n);
}

void solve() {
	if (n <= 2) {
		puts("-1");
		return;
	}
	for(int i=n; i>=1; i--)
		cout << i << " ";
}

int main(){
#ifdef gridnevvvit
	freopen("input.txt","rt",stdin);
	freopen("output.txt","wt",stdout);
#endif
	while (read())
		solve();
}

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <math.h>
#include <set>
#include <utility>
#include <map>
using namespace std;

int main()
{
    int n;
    cin>>n;
    if (n==1 || n == 2)
    {
        cout<<-1;
    }
    else
    {
        for (int i = 0; i<n; ++i)
        {
            cout<<n-i<<' ';
        }
    }
}

#include<bits/stdc++.h>
using namespace std;
int main(){
    #ifndef ONLINE_JUDGE
    freopen("input.txt","r",stdin);
    #endif // ONLINE_JUDGE
    int n;
    cin>>n;
    if(n<3){
        cout<<"-1\n";
        return 0;
    }
    for(int i=n;i>0;i--){
        cout<<((i==n)?"":" ")<<i;
    }
    cout<<endl;
    return 0;
}

#include <iostream>
using namespace std;
int main() {
    int n;
    cin>>n;
    if(n<=2) cout<<-1<<endl;
    else{
        do{cout<<n<<" ";}while(--n);
        cout<<endl;
    }
    return 0;
}

#include<stdio.h>
main()
{
int n,i,j,b;
scanf("%d",&n);
if(n==1||n==2)
  printf("-1");
  else
 if(n>2)
 for(i=n;i>0;i--)
 {
     printf("%d ",i);

 }
}

#include <bits/stdc++.h>

#define l(i,n) for(int i=0;i<n;i++)

#define pii pair<int,int>
#define DB()    cout<<"I'm in!"<<endl

typedef long long LL;

using namespace std;

int main(){
std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

    int n;
    cin>>n;
    if(n<=2) cout<<-1<<endl;
    else{
        cout<<n-1<<" ";
        for(int i=n;i>=1;i--){
            if(i==n-1) continue;
            cout<<i<<" ";
        }
        cout<<endl;
    }

return 0;
}

#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <cstring>
#include <ctime>
#include <iterator>
#define print_vector(a) for (int i = 0; i < a.size(); i++) { if (i == a.size() - 1) {cout << a[i];} else { cout << a[i] << " ";}}
#define print_vector_2d(a) for (int i = 0; i < a.size(); i++) {for (int j = 0; j < a[i].size(); j++) { if (i == a.size() - 1) {cout << a[i][j];} else { cout << a[i][j] << " ";}} cout << endl; }
using namespace std;

int main () {
  setvbuf(stdout, NULL, _IONBF, 0);
  int n;
  scanf("%d", &n);
  if (n <= 2) {
    printf("-1");
  } else {
    printf("3 2 ");
    for (int i = 0; i < n - 2; ++i) {
      printf("%d ", i + 1);
    }
  }
}

#include <iostream>
#include <iomanip>
#include <cmath>
#include <string>
using namespace std;

int main() {
int n;
cin>>n;
if(n<=2) cout<<-1;
else {
	 for(int i=n;i>=1;i--)
		cout<<i<<" ";

}
cout<<endl;
    return 0;

}

# include <iostream>
using namespace std;
int main()
{
    int n,i;
    cin>>n;
    if(n<=2)cout<<"-1"<<endl;
    else for(i=n;i>=1;i--)cout<<i<<" ";
}

#include<iostream>
 using namespace std;
 int main(){
     int i,n;
     cin>>n;
     if(n<3)
        cout<<-1;
     else
     {
         for(i=n;i>0;i--)
            cout<<i<<" ";
     }
     return 0;
 }

#define _USE_MATH_DEFINES
#define _CRT_SECURE_NO_DEPRECATE
#include <vector>
#include <list>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <complex>
#include <memory>
#include <string.h>
#include <stdio.h>
using namespace std;
#pragma comment(linker, "/STACK:256000000")
#define PRIME 1103
#define INF ((1ll << 31) - 1)
#define pb push_back
#define mp make_pair
#define all(c) (c).begin(), (c).end()
#define eps 1e-7
#define TEST "test"
#define sz(c) (int)(c).size()
template<class T> inline T sqr(T a) {return a * a; }
typedef long long int64;
typedef unsigned long long uint64;
typedef vector<int> vi;
typedef vector<vector<int> > vvi;
typedef vector<vector<vector<int> > > vvvi;
typedef pair<int, int> pii;
typedef complex<double> cd;
#define MOD 1000000007
//--------------------------------------------------
int m[1 << 10];
int main()
{
    //freopen ("input.txt", "r", stdin); freopen ("output.txt", "w", stdout);
    int n;
    cin >> n;
    if (n <= 2)
    {
        cout << - 1;
        return 0;
    }
    cout << n - 1 << ' ' << n << ' ';
    for (int i = 1; i <= n - 2; ++ i)
        cout << i << ' ';
    return 0;
}

#include <iostream>
#include <cstdio>
#include <vector>
#include <list>
#include <cmath>
#include <fstream>
#include <algorithm>
#include <string>
#include <queue>
#include <set>
#include <map>
#include <complex>
#include <iterator>
#include <cstdlib>
#include <cstring>
#include <sstream>
#include <stack>
#include <climits>
#include <deque>
#include <bitset>
#include <cassert>
#include <ctime>
using namespace std;

typedef long long ll;
typedef pair<int,int> pii;
typedef complex<double> P;
// adjust problem by problem
const double EPS=1e-8;
const double PI=acos(-1.0);
#ifdef __GNUC__
int popcount(int n){return __builtin_popcount(n);}
int popcount(ll n){return __builtin_popcountll(n);}
#endif
#ifndef __GNUC__
template<class T> int popcount(T n){int cnt=0;while(n){if(n%2)cnt++;n/=2;}return cnt;}
#endif
template<class T>int SIZE(T a){return a.size();}
template<class T>string IntToString(T num){string res;stringstream ss;ss<<num;return ss.str();}
template<class T>T StringToInt(string str){T res=0;for(int i=0;i<SIZE(str);i++)res=(res*10+str[i]-'0');return res;}
template<class T>T gcd(T a,T b){if(b==0)return a;return gcd(b,a%b);}
template<class T>T lcm(T a,T b){return a/gcd(a,b)*b;}
template<class T> void PrintSeq(T &a,int sz){for(int i=0;i<sz;i++){cout<<a[i];if(sz==i+1)cout<<endl;else cout<<' ';}}
bool EQ(double a,double b){return abs(a-b)<EPS;}
bool EQV(P a,P b){return EQ(a.real(),b.real())&EQ(a.imag(),b.imag());}
void fastStream(){cin.tie(0);std::ios_base::sync_with_stdio(0);}
vector<string> split(string str,char del){
  vector<string> res;
  for(int i=0,s=0;i<SIZE(str);i++){
    if(str[i]==del){if(i-s!=0)res.push_back(str.substr(s,i-s));s=i+1;}
    else if(i==SIZE(str)-1){res.push_back(str.substr(s));}
  }
  return res;
}

int main(){
  int n;
  cin>>n;
  if(n<=2)cout<<-1<<endl;
  else{
    for(int i=n-1;i>=0;i--){
      cout<<i+1<<" ";
    }
    cout<<endl;
  }

  return 0;
}

#include<iostream>
#include<sstream>
#include<vector>
#include<algorithm>
#include<set>
#include<map>
#include<queue>
#include<complex>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cassert>
using namespace std;

#define rep(i,n) for(int i=0;i<(int)n;i++)
#define each(i,c) for(__typeof(c.begin()) i=c.begin();i!=c.end();i++)
#define pb push_back
#define mp make_pair
#define all(c) c.begin(),c.end()
#define dbg(x) cerr<<__LINE__<<": "<<#x<<" = "<<(x)<<endl

typedef vector<int> vi;
typedef pair<int,int> pi;
typedef long long ll;
const int inf=(int)1e9;
const double EPS=1e-9, INF=1e12;

int main(){
	int n;
	cin >> n;
	if(n < 3) cout << -1 << endl;
	else{
		rep(i, n - 1) cout << "2 ";
		cout << "1" << endl;
	}
	return 0;
}

#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <vector>
#include <map>
#include <queue>
#include <set>
#include <iterator>
#include <algorithm>
#include <string>
#include <ctime>
#include <cmath>
#include <fstream>
#include <iomanip>
#include <sstream>
using namespace std;
#define INF 1000000000
#define MOD 1000000007

int main()
{
    int n;
    cin >> n;
    if(n<=2){
        cout << -1 << endl;
        return 0;
    }
    cout << 2 << " " << 2 << " ";
    for(int i=2;i<n;i++)
        cout << 1 << " ";
    cout << endl;
    return 0;
}

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<limits.h>
#include<math.h>
using namespace std;

int main(void)
{
    int n;
    scanf("%d",&n);
    if(n<=2)
        printf("-1");
    else
    {
        for(int i=n;i>=1;i--)
            printf("%d ",i);
    }
    return 0;
}

#include<iostream>

using namespace std;

int main()
{
    int n;

    cin >> n;

    if(n <= 2) cout << -1;

    else

    {
        cout << n << " " << n - 1 << " ";

        for(int i = 1; i < n - 1; i++)

        cout << i << " ";
    }
}

#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
if(n==1||n==2)
{
printf("-1");
return 0;
}
else
{
for(int i=n;i>=1;i--)
printf("%d ",i);
}
return 0;
}

#include <iostream>

int main()
{
	int n;
	std::cin >> n;
	if (n <= 2) {
		std::cout << "-1";
		return 0;
	}
	for (int i = n; i > 0; --i)
		std::cout << i << (i != 0 ? " " : "");
	return 0;
}

#include <algorithm>
#include <bits/stdc++.h>

using namespace std;

int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
    int n;
    cin>>n;
    int i;
    if(n<=2)
    cout<<-1<<endl;
    else{
        for(i=n;i>0;i--){
            cout<<i<<" ";
        }
        cout<<endl;
    }
}

#include<iostream>
#include<cmath>
#include<algorithm>

using namespace std;
int main()
{	int n;
    cin>>n;
	if (n==1 || n==2)
	{	cout<<"-1";
	}
	else
	{	for (int i = n;i>0;i--)
		{	cout<<i<<" ";
		}
	}
	return 0;
}

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int x;
    cin>>x;
    if(x<=2)
    {
        cout<<"-1";
    }
    else
    {
        for(int i=0;i<x;i++)
        {
            cout<<x-i<<" ";
        }
    }

}

#include<iostream>
#include<sstream>
#include<string>
#include<cstdlib>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<cctype>
#include<set>
#include<bitset>
#include<algorithm>
#include<list>
#include<utility>
#include<functional>
#include <deque>
#include <numeric>
#include <iomanip>
#include <cstdio>
#include <cstring>
#include <ctime>
#include <assert.h>
#include<cmath>
#include<math.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<ctype.h>

using namespace std;

int main()
{

	int n;
	cin>>n;
	if(n<=2)
	{
		cout<<"-1"<<endl;
	}
	else
	{

		cout<<n;
		for(int i=n-1;i>=1;i--)
			cout<<" "<<i;

		cout<<endl;

	}

	return 0;
}

#include <iostream>

using namespace std;

int main()
{
    int n;
    cin>>n;
    if(n==1||n==2)
    {
        cout<<"-1";
        return 0;
    }
    else
    {
        while(n)
        {
            cout<<n--<<" ";
        }
    }
    return 0;
}

#include <iostream>
#include <string>
#include <cstring>
#include <vector>
#include <algorithm>
#include <cstdio>
#include <climits>
#include <cctype>
#include <cmath>
#include <sstream>
#include <cstdlib>
#include <climits>
#include <ctime>
#include <set>
#include <map>
#include <numeric>
#include <utility>
#include <deque>
#include <queue>
#include <stack>
#include <iomanip>
#include <complex>
#include <list>
#include <bitset>
#include <fstream>
#include <limits>
#include <memory.h>

using namespace std;

#define REP(i,n) for( (i)=0 ; (i)<(n) ; (i)++ )
#define rep(i,x,n) for( (i)=(x) ; (i)<(n) ; (i)++ )
#define REV(i,n) for( (i)=(n) ; (i)>=0 ; (i)-- )
#define FORIT(it,x) for( (it)=(x).begin() ; (it)!=(x).end() ; (it)++ )
#define foreach(it,c) for(__typeof((c).begin()) it=(c).begin();it!=(c).end();++it)
#define rforeach(it,c) for(__typeof((c).rbegin()) it=(c).rbegin();it!=(c).rend();++it)
#define foreach2d(i, j, v) foreach(i,v) foreach(j,*i)
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define SZ(x) ((int)(x).size())
#define MMS(x,n) memset(x,n,sizeof(x))
#define mms(x,n,s) memset(x,n,sizeof(x)*s)
#define pb push_back
#define mp make_pair
#define NX next_permutation
#define UN(x) sort(all(x)),x.erase(unique(all(x)),x.end())
#define CV(x,n) count(all(x),(n))
#define FIND(x,n) find(all(x),(n))-(x).begin()
#define ACC(x) accumulate(all(x),0)
#define PPC(x) __builtin_popcount(x)
#define LZ(x) __builtin_clz(x)
#define TZ(x) __builtin_ctz(x)
#define mxe(x) *max_element(all(x))
#define mne(x) *min_element(all(x))
#define low(x,i) lower_bound(all(x),i)
#define upp(x,i) upper_bound(all(x),i)
#define NXPOW2(x) (1 << ((int)floor(log10((x))/log10(2.0))+1))
#define FIB(x) (pow((1+sqrt(5))/2,(x))-pow((1-sqrt(5))/2,(x)))/sqrt(5)
#define EPS numeric_limits<double>::epsilon()
#define PR(x) cout << #x << " = " << (x) << endl ;
#define INF 0x3f

typedef unsigned long long ull;
typedef long long ll;
typedef vector<int> vi;
typedef vector<vector<int> > vii;
typedef pair<int, int> pii;

const int OO = (int) 2e9;
const double eps = 1e-9;

int main() {
//#ifndef ONLINE_JUDGE
//freopen("in.txt","rt",stdin);
//// freopen("out.txt","wt",stdout);
//#endif
	int n, i;
	cin >> n;
	if (n > 2) {
		cout << n;
		for (i = n - 1; i > 0; i--)
			cout << " " << i;
		puts("");
	} else
		puts("-1");
	return 0;
}

#define _USE_MATH_DEFINES
#include <iostream>
#include <fstream>
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <vector>
#include <string>
#include <cstdlib>
#include <memory>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <limits.h>
#include <set>
#include <stdio.h>
#include <tgmath.h>
#include <bitset>
#define pb push_back
#define mp make_pair
#define ll long long
#define vi vector <int>
//#define ii pair <int, int>
//#define vii vector < ii >
#define vll vector <ll>
#define hash1 10000000000000061ll
#define MA(a,b) ((a)>(b)?(a):(b))
#define MI(a,b) ((a)<(b)?(a):(b))
#define AB(a) (-(a)<(a)?(a):-(a))
#define na(x) ((x)<P?(x):(x)-P)
#define f first
#define se second
using namespace std;

int digitcount(int n){
	int result = 0;
	for(int i = n; i > 0; i /= 10){
		result++;
	}
	return result;
}

int power(int a, int b){
	if(b==0)return 1;
	if(b==1) return a;
	return a * power(a,b-1);
}

bool pal(string str){
	for(int i=0; i < str.size()/2; i++){
		if(str[i] != str[str.size()-1-i]) return false;
	}
	return true;
}

int arr[50000];
void mySort(int left, int right){
	int pivot, tmp;
	int i, j;
	if(left >= right) return;
	pivot = abs(arr[left]);
	j = left;
	for(i = left + 1; i <= right; i++){
		if(abs(arr[i]) < pivot){
			j++;
			swap(arr[j], arr[i]);
		}
	}
	swap(arr[left], arr[j]);
	mySort(left, j-1);
	mySort(j+1, right);
}

int main(){
	int n; cin>>n;
	if(n <= 2) cout << -1 << endl;
	else {
		for(int i = n; i >= 1; i--){
			cout << i << " ";
		}
		cout << endl;
	}
}

#include <iostream>
#include <string>
using namespace std;

int main(void)
{
    int n;
    cin >> n;
    if (n < 3)
        cout << -1;
    else
        for (int i = n; i >= 1; --i)
            cout << i << ' ';
    return 0;
}

#include<iostream>
#include<vector>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <cctype>
#include <stack>
#include <queue>
#include <list>
#include <map>
#include <sstream>
#include <cmath>
#include <ctime>
#include <bitset>
#include <utility>
#include <set>
#include <numeric>

using namespace std;

int main()
{
    int n;
    //freopen("A.txt","r",stdin);
    while(scanf("%d",&n)==1)
    {
        if(n==1||n==2)
            printf("-1");
        else
            for(int i=100;i>100-n;i--)
            {
                printf("%d",i);
                if(i>100-n+1)
                    printf(" ");
            }
        printf("\n");
    }
    return 0;
}

#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <cstring>
#include <string.h>
#include <ctime>
#include <limits.h>
using namespace std;

typedef long long ll;
const double pi=acos(-1.0);
const double eps=1e-11;
//const ll INF=(_I64_MAX)/2;
const int inf=0x7FFFFFFF;
#define zero(a) memset(a, 0, sizeof(a))
template<class T>void show(T a, int n){for(int i=0; i<n; ++i) cout<<a[i]<<' '; cout<<endl;}
template<class T>void show(T a, int r, int l){for(int i=0; i<r; ++i)show(a[i],l);cout<<endl;}
#define REP(i,a,b) for(i=a;i<b;i++)
#define rep(i,n) REP(i,0,n)
#define srep(i,n) REP(i,1,n+1)
void doit(){
    int n;
    cin>>n;
    if(n < 3){
        cout<<"-1\n";
        return;
    }
    int i,j;
    cout<<"100 100";
    for(i = 3;i <= n;i ++){
        cout<<' '<<i;
    }
}
int main()
{
#ifndef ONLINE_JUDGE
   freopen("in.txt","r",stdin);
  // freopen("out.txt","w",stdout);
#endif
    doit();

#ifndef ONLINE_JUDGE
    cerr << "time = " << clock() << " ms" << endl;
#endif

return 0;
}

#include <iostream>
using namespace std;

int main()
{
    int n;
    cin>>n;
    if(n == 1 || n == 2)
        cout<<-1;
    else{
        for(int i=n;i>=1;i--){
            cout<<i<<" ";
        }
    }

    return 0;
}

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;

int main()
{
    int n;
    int  a[55];
    while(cin >> n)
    {
        if(n<=2)
            cout <<-1 <<endl;
        else
        {
            cout << 2 << " " << 2;
            for(int i=3; i<=n; i++)
            {
                  cout << " " << 1 <<endl;
            }
            cout << endl;
        }
    }
    return 0;
}

#include <iostream>

using namespace std;

int main()
{
    int n;
    cin >> n;
    if (n > 2)
    {
        for (int i = 2; i <= n; ++i)
        {
            cout << i << " ";
        }
        cout << 1 << endl;
    }
    else
    {
        cout << -1 << endl;
    }
    return 0;
}

/*
 * Author:Domma::FCI_CU
 * FRI.31/5/2013#7:42AM
 * http://codeforces.com/problemset/problem/246/A
 */
#include <iostream>
#include <vector>
using namespace std;
int main (){
    int n;
    cin >> n;
    if  (n-3<0)
    {cout<<-1;return 0;}
    //vector<int>v;
    //v.push_back(5);v.push_back(4);v.push_back(3);v.push_back(2);v.push_back(1);
    //for (int i=n;i>=1;i--){v.push_back(i);}
    for (int i=n;i>=1;i--){cout<<i<<" ";}
    /*for (int i=0;i<=n-1;i++)
        for (int j=i;j<=n-1;j++)
        {if (v[j]>v[j+1]) {swap(v[j],v[j+1]);}}
    for (int i=0;i<n;i++){cout<<v[i]<<" ";}*/
    return 0;
}
// Smile :)

#include <iostream>

using namespace std;

int main()
{
    int tmp=0;
    int arr[51];
    int n;
    cin >> n;
    //if number she enter less than 2 print -1
    if (n <= 2){
            cout<<-1<<endl;}
    else{
            //Store from 1 to number she enter in array
    for(int i=1;i<=n;i++){
        arr[i]=i;
    }

        //Selection Sort
        for (int i = 1; i <=n-1; i++){
        for (int j = i+1; j <=n ; j++){

    if (i < j){
        tmp = arr[i];
        arr[i] = arr[j];
        arr[j] = tmp;
        }
        }}
        //Print Sorting Array
        for (int i = 1; i <=n; i++)
        {
            cout <<arr[i] << " ";
        }

    }
    return 0;
}

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <string>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <set>

using namespace std;

#pragma comment(linker, "/STACK:200000000")

int main() {
    int n;
    scanf("%d", &n);
    if(n == 1 || n == 2) {
        printf("-1\n");
        return 0;
    }
    for(int i = 0; i < n - 1; i++) printf("%d ", 100-i);
    printf("1\n");
    return 0;
}

#include <bits/stdc++.h>
#include <climits>
using namespace std;

int main()
{
	//freopen("input.txt", "r", stdin);
	//freopen("output.txt", "w", stdout);
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	//pos.assign(100001, -1);

	int n;
	cin >> n;
	if(n==1 || n == 2)
	{
		cout << -1 << endl;
	}
	else
	{
		int arr[n];

		for(int i = n; i >=1; i--)
			cout << i << " ";
	}
	return 0;
}

#include <iostream>

int main()
{
    int n;
    std::cin >> n;
    if (n <= 2)
    {
        std::cout << -1;
        return 0;
    }
    for (int i = n; i != 0; --i)
    {
        std::cout << i << " ";
    }
    return 0;
}

#include <iostream>
using namespace std;
int main()
{
    int n;
    cin >> n;
    int x[50];
    if (n == 2 || n == 1)
    {
        cout << -1;
    }
    else {
        x[0] = 7;
        x[1] = 6;
        for (int i = 2; i < n; i++)
        {
            x[i] = i;
        }
        for (int i = 0; i < n; i++)
        {
            cout << x[i] << " ";
        }
    }
    return 0;
}

#include <iostream>
#include <cstdio>
#include <cstdlib>

using namespace std;

int main(){
    /*freopen("test.in","r",stdin);
    freopen("test.out","w",stdout);*/
    int n;
    cin >> n;
    if (n>2) {
        int i;
        for (i=n; i>0; i--)
            cout << i << ' ';
    }
    else
    cout << "-1";
    return 0;
}

#include <iostream>
#include <string>
using namespace std;
int main()
{
    int n=0;
    cin >> n;
    if(n>2)
    {
        for(int i=n;i>0;i--)
            if(i != 1)
                cout << i << " ";
            else
                cout << "1" ;
    }
    else
        cout << "-1";
    cout << endl;
    return   0;
}

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <map>
#include <sstream>
#pragma comment (linker, "/STACK:256000000");
using namespace std;

const int MAX_ARRAY = 100005;

string num2str(int i)
{
        stringstream ss;
        ss<<i;
        return ss.str();
}

//�ַ�ָ��
std::vector<std::string> split(std::string str,std::string pattern)
{
     std::string::size_type pos;
     std::vector<std::string> result;
     str+=pattern;//��չ�ַ��Է������
     int size=str.size();

     for(int i=0; i<size; i++)
     {
         pos=str.find(pattern,i);
         if(pos<size)
         {
             std::string s=str.substr(i,pos-i);
             result.push_back(s);
             i=pos+pattern.size()-1;
         }
     }
    return result;
}

bool DesCmp(int a, int b)
{
	return a > b;
}

int main()
{
	int n;
	cin >> n;

	if (n == 1 || n == 2)
	{
		cout << "-1" << endl;
		return 0;
	}

	for (int i = 0;i < n;i++)
	{
		cout << n - i << " ";
	}

	cout << endl;
	//system("pause");
    return 0;
}

#include<iostream>
#include<cstdio>
using namespace std;

int main(void){
    int N,i;

    cin >> N;

    if(N <= 2){
        cout << -1 << endl;
    } else {
        for(i=N;i>=1;i--){
            cout << i;
            if(i == 1) cout << endl; else cout << ' ';
        }
    }

    return 0;
}

#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<algorithm>
#include <stdlib.h>
#include <functional>
#include <set>
#include <iostream>
#include <queue>
#include <stack>
#include <list>
using namespace std;
int main()
{

    int n,i;
    scanf("%d",&n);
    if(n == 1 || n == 2)
        printf("-1\n");
    else
    {
            for(i=n; i> 0;i--)
            {
                if(i < n)
                    printf(" %d",i);
                else
                    printf("%d",i);
            }
        printf("\n");
    }

    return 0;
}

#include  <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <string>
#include<math.h>
#include<iomanip>
#include<stdio.h>
#include <stdlib.h>
#include<stdio.h>
#include <queue>
#include<map>
using namespace std;

int main(){

    int n;cin>>n;
    //n--;
    if(n<=2){cout<<"-1"<<endl;return 0;}

    cout<<n-1<<" "<<n;
    for(int i=1;i<=n-2;i++)
        cout<<" "<<i;
    return 0;
}

#include<iostream>
#include<vector>
#include<string>
#include<utility>
#include<map>
#include<math.h>
#include<cmath>
#include<algorithm>
#include<stdio.h>
#include<iomanip>
#include<iterator>
#include<fstream>
using namespace std;

void main()
{
// while(1){

    int n; cin>>n;
    if(n<=2)cout<<-1;
    else
    {
        for(int i=1; i<n; ++i)cout<<2<<' ';
        cout<<1;
    }

    //}
}

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <cassert>
#include <sstream>
#include <numeric>
#include <climits>
#include <string>
#include <cctype>
#include <ctime>
#include <iomanip>
#include <cmath>
#include <vector>
#include <queue>
#include <list>
#include <map>
#include <set>
using namespace std;

int main() {
	int n;
	scanf("%d", &n);
	if (n <= 2)
		return puts("-1"), 0;
	else {
		printf("3 4 1");
		for (int i = 4; i <= n; ++i)
			printf(" %d", 3);
		puts("");
	}
}

#include<cstdio>
#include<algorithm>
using namespace std;
bool cmp(int a,int b){
    return a>b;
}
int main()
{
    int n,a[99],b[99];
    while(~scanf("%d",&n)){
        for(int i=1;i<=n;++i){
            a[i]=i;
        }
        if(n==1||n==2){
            puts("-1");
        }
        else{
            sort(a+1,a+n+1,cmp);
            int t=a[1];
            a[1]=a[2];
            a[2]=t;
            for(int i=1;i<=n;++i){
                if(i==1){
                    printf("%d",a[i]);
                }
                else{
                    printf(" %d",a[i]);
                }
            }
            puts("");
        }
    }
    return 0;
}
/*2018-08-02 19:45:39.793*/

#include<iostream>
using namespace std;

int main()
{
	int n;
	cin>>n;

	if(n==1 || n==2)
		cout<<-1;
	else
		for(int i=n;i>=1;i--)
		{
			if(i!=n)
				cout<<' ';
			cout<<i;
		}
	cout<<endl;

	return 0;
}

#include <cstdio>
#include <vector>
#include <string>
#include <algorithm>
#include <map>
#include <set>

using namespace std;

int main()
{
	int n;
	scanf("%d", &n);
	if(n == 1 || n == 2)
		printf("-1\n");
	else
	{
		for(int i = 0;i < n;++i)
			printf("%d ", n - i);
	}

	return 0;
}

#include <bits/stdc++.h>
using namespace std;

int main() {
    //freopen("a.in","r",stdin);
    int n;
    cin >> n;
    if(n<=2)cout << "-1";
    else{
        for(int i = 2 ; i <= n;++i)
            cout << i << " ";
        cout << 1 << endl;
    }
    return 0;
}

#include <queue>
#include <iostream>
#include <set>
#include <cstdio>
#include <algorithm>
#include <string>
#include <map>
#include <string>
#include <sstream>
#include <stack>
using namespace std;
int main()
{
    int n ;
    cin >> n;
    if (n==1 || n==2)
        cout << -1;
    else
    {
        cout << n-1  << " " << n-1 << " ";
        for ( int i = 1  ; i <=n -2 ; i++)
        {
            cout << i << " ";
        }
    }
    return 0;
}

#include <iostream>
#include <algorithm>
#include <queue>
#include <vector>
#include <set>
#include <utility>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <cstring>
#define N 60

using namespace std;

int main()
{
    int n;
    scanf("%d",&n);
    if (n<3)
    {
        printf("-1\n");
    }
    else
    {
        for (int i=n;i>0;i--)
        {
            printf("%d%c",i,i==1 ? '\n':' ');
        }
    }
    return 0;
}

/*
 * File:   main.cpp
 * Author: Hrayr [HarHro94]
 * Problem: Codeforces Round 151 Div2
 * IDE: Visual C++
 */
#include <algorithm>
#include <iostream>
#include <fstream>
#include <cstring>
#include <cstdlib>
#include <string>
#include <vector>
#include <cstdio>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <set>
using namespace std;

const int MAXN = 100007;
const double eps = 1e-9;

int main()
{
//  freopen("input.txt","r",stdin);
//  freopen("output.txt","w",stdout);
    int i,n;
    cin >> n;
    if (n<=2)
    {
        cout << -1 << endl;
        return 0;
    }
    for(i=n;i>=1;i--)
    {
        cout << i << " " ;
    }
    cout << endl;
}

#include <iostream>
using namespace std;

int main(){
    int n, num = 100, x = 99;
    int a[50];
    cin >> n;
    if (n <= 2)
        cout << -1;
    else {
        for (int i = 0; i < n; i++){
            a[i] = 100;
        }
        for (int i = 1; i < n; i++){
            int j = i;
            while (j > 0 && a[j - 1] < x){
                a[j] = x;
                x--;
                j--;
            }
            a[j] = x;
            x--;
        }
        for (int i = 0; i < n; i++){
            cout << a[i] << ' ';
        }
    }
    return 0;
}

#include <bits/stdc++.h>

using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n;
  cin >> n;
  if (n <= 2) {
    cout << "-1\n";
    return 0;
  }
  for (int i = n; i >= 1; i--) {
    cout << i << " ";
  }
  cout << "\n";
  return 0;
}

#include <bits/stdc++.h>
using namespace std;

int main (){

    int n;
    cin >> n;

    if(n<=2){
        cout << "-1" << endl;
        return 0;
    }
    else {
        //cout << n << endl;
        for(int i=n; i>=1; i--)cout << i << " ";
        cout << endl;
    }

}

#include<iostream>
#include<stdio.h>
#include<ios>
#include<cmath>
#include<string>
#include<string.h>
#include<cstring>
#include<algorithm>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<set>
#include<assert.h>
#include<bitset>
#include<tuple>
#include<climits>
#include<deque>
#include<utility>
#include<unordered_map>
#include<unordered_set>
#include<iterator>
#include<sstream>
#include<ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
using namespace std;
#define int           int64_t
#define double        long double
#define nitro         ios_base::sync_with_stdio(false);cin.tie(0);
#define vi            vector<int64_t>
#define pub           push_back
#define puf           push_front
#define pob           pop_back
#define pof           pop_front
#define fi            first
#define se            second
#define PI            3.1415926535897932384626433
#define linp(a)       for(auto& x : a) cin>> x
#define endl          '\n'
#define gap           ' '
#define min3(a,b,c)   min(a, min(b, c))
#define max3(a,b,c)   max(a, max(b, c))
#define MOD           10000000007
#define Y             "YES"
#define N             "NO"
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
int32_t main()
{
    nitro
    int n;cin>>n;
    if(n==1 or n==2) cout<<"-1";
    else
    {
        while(n--)
        {
            cout<<n+1<<gap;
        }
    }
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    while(cin>>n)
    {
        if(n<3)
        {
            cout<<"-1"<<endl;
            continue;
        }
        cout<<n;
        for(int i=n-1; i>0; i--)
            printf(" %d",i);
        printf("\n");
    }

    return 0;
}

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
int main()
{
    int n;
    cin>>n;
    if(n<=2)
        cout<<-1<<endl;
    else
    {
        for(int i=n ; i>0 ; i--)
            cout<<i<<" ";
        cout<<endl;
    }
    return 0;
}

#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>

using namespace std;
using namespace __gnu_pbds;

#define endl "\n"
#define ll long long
#define vll vector<long long>
#define vi vector<int>
#define pii pair<int,int>
#define PB push_back
#define f(i,a,b) for(int i=a;i<b;i++)
typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> indexed_set;

int main()
{
    int n;
    cin>>n;
    if(n==1 || n==2)cout<<-1;
    else
    {
        for(int i=n;i>=1;i--)
        {
            cout<<i<<" ";
        }
    }

}

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int n;
	cin>>n;
    if(n==1||n==2) {
        cout<<-1<<endl;
		return 0;
    }
    for(int i=n; i>=1; i--) {
        cout<<i<<" ";
    }
    return 0;
}

#include<iostream>
#include<cstdlib>
#include<iomanip>
#include<bits/stdc++.h>
#include<string.h>
#include<cmath>
#include<algorithm>
#include<vector>
#include<set>
#define ub upper_bound
#define lb lower_bound
#define bs binary_search
#define ll long long int
#define ld long double
#define vl vector<ll>
#define sl set<ll>
using namespace std;

int main()
{
 ll n;
 cin>>n;
 if(n==1||n==2)
  return cout<<-1<<endl,0;
 cout<<n<<" ";
 for(ll i=n-1;i>=1;i--)
  cout<<i<<" ";
 return 0;
}

#include<bits/stdc++.h>
using namespace std;

typedef long long l;

int main(){
    int n;
    cin>>n;
    vector<int> v;
    if(n==1 or n==2){
        cout<<-1<<endl;
        return 0;
    }
    for(int i=n;i>0;i--) v.push_back(i);
    // swap(v[0],v[v.size()-1]);
    for(auto s : v) cout<<s<<" ";
    cout<<endl;
    return 0;
}

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{int a[100],n,i,j;
scanf("%d",&n);
if(n<3){
    printf("-1\n");}
    else {

        for(i=n;i>0;i--)

            printf("%d ",i);}

  return 0;

}

#include <cstdio>

using namespace std;

void swap( int A[], int i, int j ) {
	int temp = A[ i ];
	A[ i ] = A[ j ];
	A[ j ] = temp;
}

int main() {
	int N;
	fscanf( stdin, "%d", &N );
	int A[ N ];
	int i, j;
	if ( N == 1 || N == 0 ) {
		fprintf( stdout, "-1" );
		return 0;
	}
	for ( i = N, j = 0; i > 0; --i, ++j ) {
		A[ j ] = i;
	}

	for ( i = 0; i < N; ++i ) {
		for ( j = i; j < N - 1; ++j ) {
			if ( A[ j ] > A[ j + 1 ] ) {
				swap( A, j, j + 1 );
			}
		}
	}

	for ( i = 0; i < N; ++i ) {
		if ( A[ i ] > A[ i + 1 ] ) {
			for ( i = N, j = 0; i > 0; --i, ++j ) {
				fprintf( stdout, "%d ", i );
			}
			return 0;
		}
	}
	fprintf( stdout, "-1\n" );

	return 0;
}

#include <bits/stdc++.h>

using namespace std;

int32_t main() {

    ios_base::sync_with_stdio(false);

    cin.tie(0);

    long long n;

    cin >> n;

    if(n==1 or n==2) {

        cout << -1 << '\n';

    } else {

        vector<long long> temp;

        for(long long i = 0 ; i < n-1 ; i++) {

            temp.push_back(100);

        }

        temp.push_back(1);

        for(auto t : temp )cout<<t<<" ";

        cout << '\n';

    }

    return 0;

}

#include <iostream>
using namespace std;

int main() {
	// your code goes here
	int n = 0;
	cin>>n;
    if(n==1||n==2)
    {
    	cout<<-1;
    }else
    {
    	int temp =n;
    	for(int i=1;i<=n;i++,temp--)
    	{
    		cout<<temp<<" ";
    	}

    }
	return 0;
}

#include <iostream>
#include <vector>
#include <string>
#include <stack>
#include <algorithm>
#include <bitset>
#include <math.h>
#include <queue>
#include <map>
#include <set>
#include <limits.h>
#include <limits>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <sstream>
#include <assert.h>
#include <time.h>

#define ff first
#define ss second
#define mp make_pair
#define pb push_back
#define pp pop_back
#define lld long long
#define maxn 100009
#define inf 1000000009
#define mid (x, y) (x+y)/2
#define pii pair <int, int>
#define all(x) x.begin(), x.end()
#define lcm (x, y) (x*y) / __gcd (x, y);
#define random srand((unsigned)time(NULL))

using namespace std;

//min beryar ---> priority_queue < pii, vector< pii >, greater< pii > > Q;
//max beryar ---> priority_queue < pii > Q;

int a[maxn];

int main() {
	//freopen("file.in", "r", stdin);
	//freopen("file.out", "w", stdout);

	int n;

	cin >> n;

	if (n < 3) {
		cout << -1;
		return 0;
	}

	for (int i=n; i>0; i--) {
		cout << i << ' ', a[i] = i;
	}

	for (int i=1; i<=n; i++) {
		for (int j=1; j<=n; j++) {
			if (a[j] > a[j+1]) {
				swap (a[i], a[j]);
			}
		}
	}
	return 0;
}

#include <bits/stdc++.h>
#define int long long

using namespace std;
const int N=1e5+7;
const int INF=1e9+7;
vector<int> v;

int32_t main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n;
    cin>>n;
    v.push_back(49);
    v.push_back(50);
    for(int i=1; i<49; i++){
        v.push_back(i);
    }
    if(n!=1 && n!=2){
        for(int i=0; i<=v.size(); i++){
        if(i!=n){
            cout<<v[i]<<" ";
        }
        else{
            break;
        }
    }
    }
    else{
    cout<<-1;
    }

}

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n,i;
    scanf("%d",&n);
    if(n==1||n==2)
        printf("-1\n");
    else
    {
        for(i=n;i>=1;i--)
            printf("%d ",i);
        printf("\n");
    }

    return 0;
}

#include<bits/stdc++.h>
using namespace std;
int n;
int main()
{
	cin>>n;
	if(n>2)
	{
		for(int i=2; i<=n; i++)
		{
			cout<<i<<" ";
		}
		cout<<1<<endl;
	}
	else
	{
		cout<<-1;
	}
	return 0;
}

#include<stdio.h>
int main()
{
    int n,i;
    scanf("%d",&n);
    if(n<=2)printf("-1\n");
    else
    {
        for(i=n;i>1;--i)
            printf("%d ",i);
        printf("%d\n",i);
    }
    return 0;
}

#include<bits/stdc++.h>

using namespace std;

int main()
{

    int n,i,j,k;

    cin>>n;

    if(n<3)
        cout<<-1;
else
{
    for(i=n;i>0;i--)
    {
        cout<<i<<" ";
    }
}

    return 0;
}

#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
#include <utility>
#include <climits>
#include <cstring>
#include <sstream>
#include <cmath>
#include <map>
#include <stack>
#include <sstream>
using namespace std;
#define rep(i, n) for(int i = 0; i < (n); i++)
typedef long long ll;
template<typename T, typename U> static void amax(T &x, U y) { if(x < y) x = y; }
template<typename T, typename U> static void amin(T &x, U y) { if(x > y) x = y; }

int main()
{
    int n; scanf("%d",&n);
    if(n==1||n==2){printf("-1\n"); return 0;}
    for(int i=n;i>=1;i--)printf("%d ",i); printf("\n");
    return 0;
}

#include<iostream>
using namespace std;
int main()
{
    int n,i;
    while(cin>>n){
        if (n==1||n==2)
            cout<<-1<<endl;
        else
            for (i=0;i<n;i++)
            cout<<n-i<<endl;
    }
    return 0;
}

#include<iostream>
using namespace std;
int main()

{
    int n;
    cin>>n;
    if(n>2)
    {
        for(int i=n;i>1;i--)
            cout<<i<<" ";
        cout<<1;
    }
    else
        cout<<-1;

    return 0;

}

using namespace std;
#include<bits/stdc++.h>
typedef long long  ll;
typedef   pair<ll,ll>  pii;
typedef   vector< pii > vpii;
typedef   vector<long long>   vi;
typedef   map<string,ll>  msi;
typedef   map<ll,ll>  mii;
///Print
#define P(a)  printf("%lld",a)
#define PP(a,b)  printf("%lld %lld",a,b)
#define PPP  (a,b,c)  printf("%lld %lld %lld",a,b,c)
#define nl printf("\n")
#define case(no) printf("Case %lld: ",++no)
#define casenl(no) printf("Case %lld:\n",++no)
#define caseh(no) printf("Case #%lld: ",++no)
#define casehnl(no) printf("Case #%lld:\n",++no)
///Scanf
#define I(n)       scanf("%lld", &n)
#define II(a,b)    scanf("%lld %lld", &a, &b)
#define III(a,b,c) scanf("%lld %lld %lld", &a, &b, &c)
///LOOP
#define rep(x,n) for(__typeof(n) x=0;x<(n);x++)
#define reps(i,x) for(int  i=0;i<(x.size());i++)
#define repp(x,n) for(__typeof(n) x=1;x<=(n);x++)
#define foreach(x,n) for(__typeof(n.begin()) x=n.begin();x!=n.end();x++)
///Shortcut
#define mem(ar,value) memset(ar,value,sizeof(ar))
#define all(x) x.begin(),x.end()
#define Unique(store) store.resize(unique(store.begin(),store.end())-store.begin())
#define len(s) s.size()
#define mp make_pair
#define pb push_back
#define xx first
#define yy second
///Min AND Max
#define min4(a,b,c,d) min(min(a,b),min(c,d))
#define max4(a,b,c,d) max(max(a,b),max(c,d))
#define min3(a,b,c) min(a,min(b,c))
#define max3(a,b,c) max(a,max(b,c))
#define maxall(v) *max_element(all(v))
#define minall(v) *min_element(all(v))
#define inf (1e15)
#define eps (1e-9)
#define PI acos(-1.0)
#define pi 3.14159265358979323846
#define isEq(a,b) (fabs((a)-(b))<eps)
#define Dist(x1,y1,x2,y2) (sqrt(sqr((x1)-(x2))+sqr((y1)-(y2))))
#define spDist(lat1,long1,lat2,long2,r) ((r)*acos(sin(lat1)*sin(lat2)+cos(lat1)*cos(lat2)*cos((long1)-(long2))))
#define area(x1,y1,x2,y2,x3,y3) ( x1*(y2-y3) + x2*(y3-y1) + x3*(y1-y2) )
#define distSqr(x1,y1,x2,y2) ( sqr(x1-x2) + sqr(y1-y2) )
#define dist4adj(x1,y1,x2,y2) ( abs(x1-x2) + abs(y1-y2) )
#define dist8adj(x1,y1,x2,y2) max( abs(x1-x2) , abs(y1-y2) )
///File
#define READ freopen("input.txt","r",stdin)
#define WRITE freopen("output.txt","w",stdout)
/**Define Bitwise operation**/
#define check(n, pos) (n & (1<<(pos)))
#define biton(n, pos) (n | (1<<(pos)))
#define bitoff(n, pos) (n & ~(1<<(pos)))
#define ledzero(n) (__builtin_clz(n))
#define trailzero(n) (__builtin_ctz(n))
#define onbit(n) (__builtin_popcount(n))
///DEBUG
#define dbg(x) cout<<#x<<": "<<x<<endl
#define dbgar(i,a) cout<<#a<<"["<<i<<"] = "<<a[i]<<" "<<endl
#define trace(x) cerr<<x<<endl;
#define d1(x) cerr<<__FUNCTION__<<":"<<__LINE__<<": "#x" = "<<x<<endl;
#define d2(x,y) cerr<<__FUNCTION__<<":"<<__LINE__<<": "#x" = "<<x<<" | "#y" = "<<y<<endl;
#define d3(x,y,z) cerr<<__FUNCTION__<<":"<<__LINE__<<": "#x" = "<<x<<" | "#y" = "<<y<<" | "#z" = "<<z<<endl;
///Gcd and Lcm
template<class T>T gcd(T a,T b){return b == 0 ? a : gcd(b, a % b);}
template<typename T>T lcm(T a, T b) {return a / gcd(a,b) * b;}
///Bigmod && Pow
template<class T>T my_pow(T n,T p){if(p==0)return 1;T x=my_pow(n,p/2);x=(x*x);if(p&1)x=(x*n);return x;} ///n to the power p
template<class T>T big_mod(T n,T p,T m){if(p==0)return (T)1;T x=big_mod(n,p/2,m);x=(x*x)%m;if(p&1)x=(x*n)%m;return x;}
template<class T> inline T Mod(T n,T m) {return (n%m+m)%m;} ///For Positive Negative No.
///string to int
template <class T> T extract(string s, T ret) {stringstream ss(s); ss >> ret; return ret;}/// extract words or numbers from a line
template<class T> string itos(T n){ostringstream ost;ost<<n;ost.flush();return ost.str();}///NOTES:toString(
ll stoi(string s){ll r=0;istringstream sin(s);sin>>r;return r;}///NOTES:toInt(
double toDouble(string s){double r=0;istringstream sin(s);sin>>r;return r;}
//int col[8] = {0, 1, 1, 1, 0, -1, -1, -1};int row[8] = {1, 1, 0, -1, -1, -1, 0, 1};///8 Direction
//int col[4] = {1, 0, -1, 0};int row[4] = {0, 1, 0, -1};///4 Directionint
//int dx[]={2,1,-1,-2,-2,-1,1,2};int dy[]={1,2,2,1,-1,-2,-2,-1};///Knight Direction
//int dx[]={-1,-1,+0,+1,+1,+0};int dy[]={-1,+1,+2,+1,-1,-2};///Hexagonal Direction

ll ar[2000005],ar1[200005];
ll a=0,b=0,c=0,r=0,rr=0,res=0,n,m;

string s,ss;
vi v[100005];

ll vis[100005];

ll ans[1000005];

ll mod=1e9+7;

void dfs(ll n)
{

    queue<ll>Q;
    Q.push(n);

    vis[n]=1;

    while(!Q.empty())
    {
        ll aa=Q.front();Q.pop();

        rep(i,len(v[aa]))
        {
            ll bb=v[aa][i];
            if(vis[bb]==0  and ar[bb]==0)
            {
                ans[bb]=ans[aa]+1;
                if(ans[bb]==m)r++;

                vis[bb]=1;

                Q.push(bb);
            }
        }
    }

}

int main()
{
    //ios_base::sync_with_stdio(false);
   // cin.tie(false);

    cin>>n;
    if(n==1)
    {
        cout<<-1;
        return 0;
    }

    while(n>0)
    {
        cout<<n<<" ";n--;
    }

   return 0;

}

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t,i,n,a,b,p=0,j,k,m,M;
    cin>>n;
    if(n==1)
        cout<<-1<<endl;
    else
        {
    int a[n];
    k=n;
    for(i=0;i<n;i++)
    {
        a[i]=k;
        k--;
    }
    for(i=0;i<n;i++)
    {
        cout<<a[i]<<" ";
    }
    cout<<endl;
        }

    }

#include<iostream>

using namespace std;

int main()
{
    int n;
    cin>>n;
    if(n==1)
    {
        cout<<"-1";
        return 0;
    }
    cout<<n;
    for(int i=1;i<n;i++)
    {
        cout<<i<<" ";
    }
    return 0;
}

#include <iostream>

using namespace std;

int main()
{
   int n;
   cin>>n;
   int arr[n];
   if (n>2)
   {
      for (int i=2; i<=n; ++i)
      {
         cout<<i<<" ";
      }
      cout<<0;
   }
   else cout<<-1;
    return 0;
}

#include <iostream>
using namespace std;
int main()
{
	int n;
	cin>>n;
	if (n<3)
	{
		cout<<-1;
		return 0;
	}
	cout<<(n-1)<<" "<<n<<" ";
	for (int i=1; i<(n-1); ++i)
		cout<<i<<" ";
	cout<<n;
	return 0;
}

#include<bits/stdc++.h>
using namespace std;

void solve()
{
    int n;
    cin>>n;
    if(n==1){cout<<"-1\n";}
    else{
        while(n>0)
        {
            cout<<n--<<" ";
        }
    }
}

int main()
{

  solve();
    return 0;

}

#include <iostream>

using namespace std;

void solve(int n){
  if(n <= 3){
    cout<<"-1"<<endl;
  }else{
    for(int i = 0 ; i < n ; i ++){
      cout<<n-i-1<<" ";
    }
    cout<<endl;
  }
}

int main(){
  int n; cin>>n;
  solve(n);
  return 0;
}

#include<iostream>
#include<stdio.h>
#include<cstdlib>
#include<math.h>
#include<algorithm>
#include<fstream>
#include<string>
#include<stack>
#include <iomanip>
#define pi 3.1415926535
#define mod9 1000000009
#define mod7 1000000007
using namespace std;
int main(){
 //freopen("input.txt","r",stdin);
 //freopen("output.txt","w",stdout);
   int n,i;
   cin>>n;
      if (n==6) n=n/(n-1);
   if (n<=2) {cout<<-1; return 0;};
   cout<<10;
   for (i=2;i<=n;i++)
       cout<<10;
 return 0;
}

#include <cstring>
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <queue>
#include <cstdlib>
#include <ctime>
#include <cassert>

#define endl "\n"
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define bp pop_back
#define sz(x) (int)x.size()
#define all(x) x.begin() , x.end()

#define Pii pair < int , int >
#define Vi vector < int >
#define ll long long
#define ull unsigned long long

using namespace std;

const double pi = 3.14159265358979323846;
const int Mass = (int) 2e5;

inline void Abacaba () {
	ios_base::sync_with_stdio(0);
	cin.tie(NULL); cout.tie(NULL);
	cout << fixed << setprecision(12);
}

int main() {
	#ifdef Home
		freopen(".in", "r", stdin);
    	freopen(".out", "w", stdout);
  	#endif
	Abacaba();
	int n;
	cin >> n;
	cout << -1;
  	return 0;
}

#include <iostream>

using namespace std;

int main()
{
        int n = 0;
        cin >> n;
        if (n == 1)
        {
                  cout << -1;
        }
        else
        {
                  cout << n << ' ';
                  for (int i = 1; i < n; i++)
                  {
                            cout << i << ' ';
                  }
        }
}

#include<iostream>
#include<algorithm>
using   namespace std;
int a,b,c,n,d,k,i;
int main(){
cin>>n;
if(n<=3){
        cout<<-1;
        }
        else{
        for(i=n;i>0;i--){
                         cout<<i-1<<" ";
                         }
                         }
                      //system("pause");
                         }

#include <iostream>
using namespace std;

int main() {
	// your code goes here
	int n;
	cin>>n;
    if(n==1||n==2)
    {
    	cout<<-1;
    }else
    {
    	cout<<1<<" ";
    	for(int i=2;i<n;i++)
    	{
    		cout<<-1<<" ";
    	}
    	cout<<-2<<" ";
    }
	return 0;
}

#include <cstdio>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include <ctime>
#include <cassert>
#include <iostream>
#include <iomanip>
#include <fstream>
#include <sstream>
#include <algorithm>
#include <string>
#include <vector>
#include <set>
#include <queue>
#include <map>
#include <list>
#include <complex>
#pragma comment(linker, "/STACK:266777216")
using namespace std;

typedef long long LL;
typedef unsigned long long ULL;
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef pair<int,int> PII;
typedef vector<PII> VPII;
typedef vector<double> VD;
typedef pair<double,double> PDD;

const int inf=1000000000;
const LL INF=LL(inf)*inf;
const double eps=1e-9;
const double PI=2*acos(0.0);
#define bit(n) (1<<(n))
#define bit64(n) ((LL(1))<<(n))
#define pb push_back
#define sz size()
#define mp make_pair
#define cl clear()
#define all(a) (a).begin(),(a).end()
#define fill(ar,val) memset((ar),(val),sizeof (ar))
#define sqr(x) ((x)*(x))
#define X first
#define Y second

int main(){
	int n;
	cin >> n;
	if (n==1){
		cout << -1;
		return 0;
	}
	for (int i = 0; i <n-1; i++)
		cout << i + 2 << ' ';
	cout << 1 << endl;

	return 0;
}

#include <vector>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <algorithm>
#include <sstream>
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <string>
#include <cstring>

#define eps 1e-8
#define vi vector<int>
#define pb(x) push_back(x)
#define f(i,x,y) for(int i=x;i<y;i++)
#define rf(i,y,x) for(int i=y;i>=x;i--)
#define all(x) (x).begin(),(x).end()
#define cout1(x) cout<<x<<endl
#define cout2(x,y) cout<<x<<" "<<y<<endl
#define cout3(x,y,z) cout<<x<<" "<<y<<" "<<z<<endl
//^
using namespace std;
int t[500000];
int main(){
    int n,m,ans;
    while(cin>>n){
        if(n==1)puts("-1");
        else{
            printf("%d",n);
            for(int i=0;i<n;i++){
                if(i==0)printf("%d",n-i+1);
                else printf(" %d",n-i+1);
            }
        }
    }

}

#include<iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    if(n==1)
        cout<<-1<<endl;
    else
    {
        for( int i = 0 ; i < n ; i++)
        {
            cout<<n-i<<" ";
        }
    }
}

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <cassert>
#include <sstream>
#include <numeric>
#include <climits>
#include <string>
#include <cctype>
#include <ctime>
#include <iomanip>
#include <cmath>
#include <vector>
#include <queue>
#include <list>
#include <map>
#include <set>
using namespace std;

typedef long long int64;

const int MOD = int(1e9) + 9;

inline int power(int a, int b) {
	int ret = 1;
	for (; b; b >>= 1, a = (int64)a * a % MOD)
		if (b & 1)
			ret = (int64)ret * a % MOD;
	return ret;
}

int n, m;

int main() {
	scanf("%d%d", &n, &m);
	m = power(2, m) - 1;
	int result = power(m, n), sign = 1;
	for (int i = 2; i <= n; i += 2) {
		sign *= -1;
		result += sign * ((int64)(n - i + 1) * power(m, i / 2) % MOD * power(m, n - i) % MOD);
		result %= MOD;
	}
	printf("%d\n", (result + MOD) % MOD);
}

#include <iostream>

using namespace std;

int main()
{
    int n;
    cin >> n;
    if (n > 2)
    {
        for (int i = 2; i <= n; ++i)
        {
            cout << i << " ";
        }
        cout << 1 << endl;
    }
    else
    {
        cout << 0 << endl;
    }
    return 0;
}

#include <bits/stdc++.h>
#define int long long

using namespace std;
const int N=1e5+7;
const int INF=1e9+7;
vector<int> v;

int32_t main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n;
    cin>>n;
    v.push_back(49);
    v.push_back(50);
    for(int i=1; i<48; i++){
        v.push_back(i);
    }
    if(n!=1 && n!=2){
        for(int i=0; i<v.size(); i++){
        if(i!=n){
            cout<<v[i]<<" ";
        }
        else{
            break;
        }
    }
    }
    else{
    cout<<-1;
    }

}

#include<stdio.h>

int main()
{
    int n;
    scanf("%d",&n);
    if(n==1||n==2)
    printf("-1");
    else
    {
    for(int i=1;i<=n;i++)
    printf("%d ",i);
    }

    return 0;
}

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <string>
#include <bitset>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <vector>
#include <cmath>
#include <algorithm>

using namespace std;

typedef long long ll;
typedef pair <int,int> pii;
typedef pair <long long, long long> pll;

const int INF = 1e9+7;
ll a[1000000];

int main()
{
	//freopen("input.txt","r",stdin);
	int n;
	cin >> n;
	cout << (-1);
	return 0;
}

#include <iostream>
using namespace std;

int main() {
	int holder=0;
	string answer="1";
	int n;
	cin>>n;
	int ours[n];
    for (int our=0;our<n;our++)
    {ours[our]=our+1;}

    int our2[n];
    {
    	    for (int ou=0;ou<n;ou++)
    {our2[ou]=n-ou;}
    }

     int arr[n];
     for (int his=0;his<n;his++)
     {arr[his]=n-his;}

     for (int i=1;i<n-1;i++)
     {
     	for (int j=i;j<n-1;j++)
     	{
     		if (arr[j]>arr[j+1])
     		{
     			holder=arr[j];
     			arr[j]=arr[j+1];
     			arr[j+1]=holder;
     		}
     	}
     }

    for (int our=0;our<n;our++)
           {
           	if (ours[our] != arr[our])
           	{answer="-1";
           	}
           }

     if (answer=="1")
     {cout<<-1;}
     else{
      for (int our=0;our<n;our++)
     {cout<<our2[our];
     if (our<=n-2)
     {cout<<" ";}}

     }

	return 0;
}

#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>

#define out freopen("out.txt", "w", stdout);
#define in freopen("in.txt", "r", stdin);
#define pub push_back
#define pob pop_back

///int col[8] = {0, 1, 1, 1, 0, -1, -1, -1};
///int row[8] = {1, 1, 0, -1, -1, -1, 0, 1};

using namespace std;

int main()
{
    int n, i;
    scanf("%d", &n);
    if(n <= 2)
        cout << "-1";
    else
    {
        for(i = 1; i <= n; i++)
            cout << "8 ";
    }
    return 0;
}

#include<bits/stdc++.h>

using namespace std;

int main()
{

typedef long long int ll;
    ll b,c,d,e,f,g,h,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,sum;
    ll tc;
     cin>>n;
     if(n==3)
	 {
	 	cout<<3<<" "<<2<<" "<<1<<endl;
	 }
	 else cout<<-1<<endl;
    return 0;
}

#include <iostream>

using namespace std;

void f(int n){

    if (n == 1){
        cout << -1 << endl;
        return ;
    }

    for (int i = 0; i < n - 1; i++){
        cout << 2 << " ";
    }

    cout << 1 << endl;

    return ;

}

int main(){

    int n;

    cin >> n;
    f(n);
}

#include <bits/stdc++.h>
using namespace std;

#define endl "\n"
#define mod 1000000007

#define int long long

#define f(i,a,n) for(int i = a; i < n; i++)
#define fs(i,a,n,k) for(int i = a; i < n; i+=k)

#define fr(i,n) for(int i = n; i >= 0; i--)
#define frs(i,a,n,k) for(int i=n; i>=a; i-=k)

#define out1(a) cout << a << endl
#define out2(a,b) cout << a << " " << b << endl
#define out3(a,b,c) cout << a << " " << b << " " << c << endl

signed main(){
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif

    //enable fast I/O
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    int n;
    cin >> n;

    for(int i=n; i>0; i--){
        cout << "i ";
    }
    cout << endl;

    return 0;
}

#include<iostream>
#include<stdio.h>
#include<cstdlib>
#include<math.h>
#include<algorithm>
#include<fstream>
#include<string>
#include<stack>
#include <iomanip>
#define pi 3.1415926535
#define mod9 1000000009
#define mod7 1000000007
using namespace std;
int main(){
 //freopen("input.txt","r",stdin);
 //freopen("output.txt","w",stdout);
   int n,i;
   if (n<=2) {cout<<-1; return 0;};
   cout<<10;
   for (i=2;i<=n;i++)
       cout<<10;
 return 0;
}

#include <bits/stdc++.h>

using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    int n;
    cin >> n;
    if (n == 1)
      cout << -1;
      else{
          for (int i = n - 1; i >= 0; i--)
             cout << i+1 << " ";
      }
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    if(n<3)cout<<-1;
    else
    {
        for(int i=n;i--;)
        {
            if(i==1)cout<<i;
            else cout<<i<<' ';
        }
    }
}

#include<bits/stdc++.h>
using namespace std;
/******************************TYPE name************************************/
typedef long long ll;
typedef vector<int> vi;
typedef pair<int ,int > pii;
typedef map<int,int>mii;

/***********************************MACRO*************************/
#define test int ct;cin>>ct;while(ct--)
#define fo(i,n) for( i=0;i<n;i++)
#define el <<"\n"
#define sc(n) scanf("%d",&n)
#define scl(n) scanf("%lld",&n)
#define sq(a) (a)*(a)
#define file() freopen("input.txt", "r", stdin);freopen("output.txt", "w", stdout);
#define zro 1e-9
#define F first
#define S second
#define pb(a) push_back(a)
#define sqsum(n) (((n)*(n+1)*(2*(n)+1))/6) //sum of square number 1 to n
#define mltpls(first,last,ratio) ((last)*(ratio)-(first))/(ratio-1) //multiple series
#define linear_sum(n) (n)*(n+1)/2; //sum of 1 to n
#define arithmetic_progression(first,last,ratio) ((ratio)*(first+last))/2
#define rb rbegin()
#define re rend()
#define bg begin()
#define en end()
#define itr iterator
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);
int i;
#define gcd(a,b) __gcd(a,b)
#define gl(s) getline(cin,s)

//code: amr and music :: map of vector

/********************************code***************************/
int main()
{
    int n;
    cin>>n;
    int a[n],b[n];
    fo(i,n){
    cin>>a[i];
    b[i]=a[i];}
    for(i=0;i<n-1;i++)
    {
        for(int j=i;j<n-1;j++)
        {
            if(a[j]>a[j+1])
            {
                int temp;
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }
    if(n==1)
    {
        cout<<-1;
        return 0;
    }
    sort(b,b+n);
    bool bl=false;
fo(i,n)
    if(a[i]!=b[i])
       bl=true;
    if(bl)
        cout<<-1;
    else
        fo(i,n)
        cout<<a[i]<<" ";

}

#include <iostream>

using namespace std;

int main() {
	int n;
	cin >> n;
	if( n < 3 ) {
		cout << "-1" << endl;
	} else {
		for( int i=0; i<n; ++i ) {
			cout << (i+1);
			if( i<n-1 )
				cout << " ";
			cout << endl;
		}
	}
}

#include <iostream>
using namespace std;
int main(){
    int n;
    cin>>n;
    if(n<2)cout<<-1<<endl;
    if(n>2){
        for(int i=0;i<n;i++)cout<<n-i<<endl;
    }
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int a[205];
	a[1]=2,a[2]=3,a[3]=1;
	if(n<=3)
	{
		cout<<-1<<"\n";
	}
	else
	{
		for(int i=4;i<=n;i++) cout<<i<<" ";
		for(int i=1;i<n;i++)
		{
			cout<<a[i]<<" ";
		}
	}
}

#include<cstdio>
#include<iostream>
using namespace std;
int ar[1000];
int main()
{
    int n,i,a,j,temp;
    while(scanf("%d",&n)==1)
    {
        if(n==1)
        {printf("-1\n");continue;}
        for(i=0;i<n;i++)
        {
            scanf("%d",&ar[i]);
        }
        for(i=0;i<n-1;i++)
        {
            for(j=i;j<n-1;j++)
            {
                if(ar[j]>ar[j+1])
                {temp=ar[j];
                ar[j]=ar[j+1];
                ar[j+1]=temp;}
            }
        }
        if(n==2)
        {printf("-1\n");continue;}
         cout<<ar[0];
        for(i=1,a=n/2;i<(n-a);i++)
        printf(" %d",ar[i]);
        cout<<endl;

    }
    return 0;
}

#include <bits/stdc++.h>

using namespace std;

int32_t main() {

    ios_base::sync_with_stdio(false);

    cin.tie(0);

    long long n;

    cin >> n;

    srand(time(NULL));

    if(n==1) {

        cout << -1 << '\n';

    } else {

        for(long long i = 0 ; i < n-1 ; i++) {

            if(i%2)

                cout << rand()%100+1 << ' ';

            else

                cout << rand()%100+1 << ' ';

        }

        cout << 1 << '\n';

    }

    return 0;

}

#include<bits/stdc++.h>
using namespace std;
int x,y,z;
string s;
#define sf scanf
#define pf printf
#define in1(x) cin>>x
#define in2(x,y) cin>>x>>y
#define in3(x,y,z) cin>>x>>y>>z
#define exit return 0
#define out1(x) cout<<x
#define out2(x,y) cout<<X<<" "<<y
#define out3(x,y,z) cout<<X<<" "<<y<<" "<<z
#define nl cout<<endl
#define outcs(x) cout<<"Case "<<x<<": "
#define out(x) cout<<x<<" "
#define pb push_back
#define ppb pop_back
#define ll long long int
#define pi acos(-1.00)
#define mod 1000000007
#define mx INT_MAX
#define mn INT_MIN
#define mem(x,y) memset((x),y,sizeof(x))
#define mx2(x,y) max(x,y)
#define mx3(x,y,z) max(x,max(y,z))
#define mn2(x,y) min(x,y)
#define mn3(x,y,z) min(x,min(y,z))
#define fs first
#define sc second
#define fr0(i,x) for(ll i=0;i<x;i++)
#define fr1(i,x) for(ll i=1;i<=x;i++)
#define sln(s)  s.lenght()
#define ch(s) strlen(s)
#define infile freopen("lubu.txt" , "r", stdin)
int main()
{
    infile;
    int n;
    while(in1(n))
    {
        if(n<=2)
        {
            out1(-1);
            nl;
            continue;
        }
        else
        {
            for(int i=n;i>1;i--)
            {
                out(i);
            }
            out1(1);
            nl;
        }
    }

    exit;
}

#include <iostream>
#include <algorithm>
using namespace std;

void sortA(int a[],int n)
{
    for(int i = 0 ; i < n-1 ; i++)
    {
        for(int j = i ; j < n-1 ; j++)
        {
            if (a[j] > a[j+1]) swap(a[j], a[j+1]);
        }
    }
}
int main()
{
    int n;
    cin>>n;
    int a[100];
    int b[100];
    for (int i = 0; i < n; i++)
    {
        a[i] = n-i;
        b[i] = n-i;
    }
    sortA(a,n);
    sort(b,b+n);
    int sw = 0;
    for (int i = 0; i < n; i++)
    {
        if(a[i]!=b[i])
        {
            sw = 1;
            for (int j = 0; j < n; j++)
            {
                cout<<b[j]<<" ";
            }
            break;
        }
    }
    if( sw == 0)cout<<"-1";
    return 0;
}

#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <cstring>
#include <string.h>
#include <ctime>
#include <limits.h>
using namespace std;

typedef long long ll;
const double pi=acos(-1.0);
const double eps=1e-11;
//const ll INF=(_I64_MAX)/2;
const int inf=0x7FFFFFFF;
#define zero(a) memset(a, 0, sizeof(a))
template<class T>void show(T a, int n){for(int i=0; i<n; ++i) cout<<a[i]<<' '; cout<<endl;}
template<class T>void show(T a, int r, int l){for(int i=0; i<r; ++i)show(a[i],l);cout<<endl;}
#define REP(i,a,b) for(i=a;i<b;i++)
#define rep(i,n) REP(i,0,n)
#define srep(i,n) REP(i,1,n+1)
void doit(){
	int n;
	cin>>n;
	if(n < 3){
		cout<<"-1\n";
		return;
	}
	int i,j;
	cout<<"10000 10000";
	for(i = 3;i <= n;i ++){
		cout<<' '<<i;
	}
}

int main()
{
#ifndef ONLINE_JUDGE
   freopen("in.txt","r",stdin);
  // freopen("out.txt","w",stdout);
#endif
	doit();

#ifndef ONLINE_JUDGE
    cerr << "time = " << clock() << " ms" << endl;
#endif

return 0;
}

            #include<bits/stdc++.h>
            #define ll long long
            #define pb push_back
            #define r_0 return 0
            #define fr first
            #define se second
            #define TIME ios_base::sync_with_stdio(0);
            using namespace std;
            const ll N= 1e5+1 ;
            ll n  , m ,  cnt  , ans , x , sum ,rem,w  , z , mx = 0   , mn = N , used[N];
            vector< ll >v , v1;
            set< char >se ;
            vector< pair<ll , ll > >p ;
            string s , s1 ;
            map< char , ll >mp ;
            char h , y;
            int main()
            {
                TIME
          cin >> n;
        if( n > 2 )
        {
            for( int i = 1 ; i <= n; i ++ )
            {
                cout << i << " ";
            }
        }
        else
            cout << -1 ;

            }

/**

===========================================================================

                       Name : Ayat
                       Surname : Kydyrbek
                       School : Taraz er KTL
                       Grade : 9
                       Copyrights : All rights reserved

===========================================================================

**/
#include <iostream>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <vector>
#include <algorithm>
#define all(a) a.begin(),a.end()
#define frr(i,b) for(i=0;i<b.length();i++)
#define fr1(i,x,b) for(i=x;i<=b;i++)
using namespace std;
typedef long long lint;
int main()
{
    //freopen("input.txt","r",stdin);
    //freopen("output.txt","w",stdout);
    lint n,i,q,j,a[105];
    cin>>n;
    //if(n==1){cout<<-1;return 0;}
    for(i=1;i<=n;i++)
    {
        q=rand()%100+1;
        a[i]=q;
    }
    for(i=1;i<=n-1;i++)
    {
        for(j=i;j<=n-1;j++)
        {
            if(a[j]>a[j+1])swap(a[j],a[j+1]);
        }
    }
    for(i=1;i<=n;i++)
    {
       if(a[i]<a[i+1]){
           cout<<-1;return 0;
           }
       else{for(i=1;i<=n;i++)cout<<a[i]<<" ";}
       }

    return 0;
}

#include <iostream>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <memory.h>
#include <string>
#include <vector>
#include <stack>
#include <list>
#include <queue>
#include <map>
#include <set>
#include <algorithm>

using namespace std;

int main()
{
	cout<<-1;
	return 0;

}

#include<iostream>
#include<stdio.h>
#include<cstdlib>
#include<math.h>
#include<algorithm>
#include<fstream>
#include<string>
#include<stack>
#include <iomanip>
#define pi 3.1415926535
#define mod9 1000000009
#define mod7 1000000007
using namespace std;
int main(){
 //freopen("input.txt","r",stdin);
 //freopen("output.txt","w",stdout);
   int n,i;
   cin>>n;
      if (n==5) n=n/(n-1);
   if (n<=2) {cout<<-1; return 0;};
   cout<<10;
   for (i=2;i<=n;i++)
       cout<<10;
 return 0;
}

#include <iostream>
#include <stdio.h>
#include <math.h>
#include <climits>
#include <stdlib.h>
#include <vector>
#include <cstdlib>
#include <map>
#include <list>
#include <algorithm>
#include <stack>
#include <queue>
#include <math.h>
#include <time.h>

#define pb(x) push_back(x);

using namespace std;

int main()
{
    #ifndef ONLINE_JUDGE
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
    #endif

    std::srand(time(NULL));
    int n;
    cin >> n;
    if (n <= 2) { cout << -1; return 0;}
    //cout << 11 << ' ' << 12 << ' ' << ' ' << 10 << ' ';
    for(int i = 0;i < n - 3; ++i)
    {
        cout << rand() % 100 + 1 << ' ';
    }
    return 0;
}

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <queue>
#include <map>

using namespace std;

int main()
{
    int n;
    scanf("%d", &n);

    if(n == 1) { printf("-1\n"); return 0; }

    for(int i = n; i > 0; i--)
    {
        printf("%d ", i);
    }
    printf("\n");
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;cin>>n;
	cout<<"-1";
}

#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>

#define out freopen("out.txt", "w", stdout);
#define in freopen("in.txt", "r", stdin);
#define pub push_back
#define pob pop_back

///int col[8] = {0, 1, 1, 1, 0, -1, -1, -1};
///int row[8] = {1, 1, 0, -1, -1, -1, 0, 1};

using namespace std;

int main()
{
    int n, i, j;
    scanf("%d", &n);
    i = 100;
    j = 1;
    if(n == 1)
        cout << "-1";
    else
    {
        while(n--)
        {
            if(n & 1)
                cout << i-- << " ";
            else
                cout << j++ << " ";
        }
    }
    return 0;
}

#include <iostream>
#include <vector>
using namespace std;
int main()
{
	int n;
	cin>>n;
	if (n<=2)
	{
		cout<<"-1";
		return 0;
	}
	else
	{
		for(int i=n;i>=0;i--)
			cout<<n;
	}
	return 0;
}

#include <bits/stdc++.h>
//1 + 1 == 3(?!);
//in the name of god;
using namespace std;
typedef long long ll;
#define pb push_back
 int main(){
	ll n;
	cin >> n;
	if(n <= 2)cout << "-1\n";
	else{
		for ( ll i = n - 1; i >= 1; --i )cout << i << " ";
	}
  }

#include <stdio.h>

int main(){

	int n;
	scanf("%d",&n);
	if (n==1) {
		printf("-1\n");
		return 0;
	}
	if (n==2 ){
			printf("-1\n");
			return 0;
	}
	printf("%d ",n);
	for (int i=n;i>2;i--)
		printf("%d ",i);
	printf("0\n");
	return 0;
}

#include <cstdio>
#include <sstream>
#include <cstdlib>
#include <cctype>
#include <cmath>
#include <algorithm>
#include <set>
#include <queue>
#include <stack>
#include <list>
#include <iostream>
#include <fstream>
#include <numeric>
#include <string>
#include <vector>
#include <cstring>
#include <map>
#include <iterator>
#include <bitset>

#define inf 999999999
#define eps 1e-12

using namespace std;

int main()
{
    int n,i,j;
    cin>>n;
    if(n==1)
    cout<<"-1";
    else
    {
        i=1;
        j=100;
        cout<<i<<" "<<j;
        n-=2;
        while(n>0)
        {
            i++;
            cout<<" "<<i;
            n--;
            if(n<=0)
            break;
            j--;
            cout<<" "<<j;
            n--;
            if(n<=0)
            break;
        }
    }
    cout<<endl;
    return 0;
}

#include <iostream>
#include<cmath>
#include<algorithm>
using namespace std;

int main() {
	int n;
	cin>>n;
	if(n==1||n==2)cout<<-1;
	else while(--n){
		cout<<n<<" ";

	}

	return 0;
}

#include<bits/stdc++.h>
using namespace std;
void sortFun(int a[], int n) {
    for(int i = 1; i < n; i++) {
        for(int j = 1; j < n; j++) {
            if(a[j] > a[j + 1]) {
                int t = a[j];
                a[j] = a[j + 1];
                a[j + 1] = t;
            }
        }
    }
    for(int i = 0; i < n; i++) {
        cout << a[i] << endl;
    }
}
int main() {
    int n;
    cin >> n;
    if(n <= 2) {
        cout << -1;
    }
    else {
        cout << n << " ";
        for(int i = 1; i < n; i++) {
            cout << i << " ";
        }
    }
    return 0;
}

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin >> n;
    if(n==1)    cout<<-1;
    else
    {
        while(n!=0) cout<<n--<<" ";
    }
}

#include <algorithm>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <climits>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <deque>
#include <set>
#include <sstream>
#include <string>
#include <vector>
#include <stack>
#include <list>
#include <bitset>
#include <cassert>
#define clr(x) memset((x), 0, sizeof(x))
#define all(x) (x).begin(), (x).end()
#define pb push_back
#define mp make_pair
#define For(i, st, en) for(int i=(st); i<=(int)(en); i++)
#define Ford(i, st, en) for(int i=(st); i>=(int)(en); i--)
#define forn(i, n) for(int i=0; i<(int)(n); i++)
#define ford(i, n) for(int i=(n)-1; i>=0; i--)
#define fori(it, x) for (__typeof((x).begin()) it = (x).begin(); it != (x).end(); it++)
#define in(x) int (x); input((x));
#define x first
#define y second
#define less(a,b) ((a) < (b) - EPS)
#define more(a,b) ((a) > (b) + EPS)
#define eq(a,b) (fabs((a) - (b)) < EPS)
#define remax(a, b) ((a) = (b) > (a) ? (b) : (a))
#define remin(a, b) ((a) = (b) < (a) ? (b) : (a))
using namespace std; typedef long double ld; template <class _T> inline _T sqr(const _T& x) {return x * x;} template <class _T> inline string tostr(const _T& a) {ostringstream os(""); os << a; return os.str();} const ld PI = 3.1415926535897932384626433832795L; const double EPS = 1e-6; char TEMPORARY_CHAR; typedef long long ll; typedef unsigned long long ull; typedef set < int > SI; typedef vector < int > VI; typedef vector < vector < int > > VVI; typedef map < string, int > MSI; typedef pair < int, int > PII; const int INF = 1e9; typedef complex<ld> cbase; inline void fft (vector<cbase> &a, bool invert) {int n = (int)a.size(); for (int i = 1, j = 0; i < n; ++i) {int bit = n >> 1; for (; j >= bit; bit >>= 1) j -= bit; j += bit; if (i < j) swap(a[i], a[j]);} for (int len = 2; len <= n; len <<= 1) {ld ang = 2 * PI / len * (invert ? -1 : 1); cbase wlen(cos(ang), sin(ang)); for (int i = 0; i < n; i += len) {cbase w(1); for (int j=0; j < len / 2; ++j) {cbase u = a[i + j], v = a[i + j + len / 2] * w; a[i + j] = u + v; a[i + j + len / 2] = u - v; w *= wlen;}}} if (invert) for (int i = 0; i < n; ++i) a[i] /= n;} inline void input(int &a) {a = 0; while (((TEMPORARY_CHAR = getchar()) > '9' || TEMPORARY_CHAR < '0') && (TEMPORARY_CHAR != '-')){} char neg = 0; if (TEMPORARY_CHAR == '-') {neg = 1; TEMPORARY_CHAR = getchar();} while (TEMPORARY_CHAR <= '9' && TEMPORARY_CHAR >= '0') {a = (a << 3) + (a << 1) + TEMPORARY_CHAR - '0'; TEMPORARY_CHAR = getchar();} if (neg) a = -a;} inline void out(ll a) {if (!a) putchar('0'); if (a < 0) {putchar('-'); a = -a;} char s[20]; int i; for(i = 0; a; ++i) {s[i] = '0' + a % 10; a /= 10;} ford(j, i) putchar(s[j]);} inline int nxt() {in(ret); return ret;} struct lnum {vector <int> a; int base; lnum(int num = 0, int base = 1000000000):base(base) {if (!num) a.resize(1); while(num) {a.pb(num % base); num /= base;}} inline int len() const {return a.size();} lnum & operator=(const lnum &l) {if (this != &l) {a = l.a; base = l.base;} return *this;} inline friend lnum operator+(const lnum &l, const lnum &r) {lnum ret(0, l.base); int base = l.base; int ln = l.len(), rn = r.len(); int n = max(ln, rn); ret.a.resize(n); int o = 0; for(int i = 0; i < n; ++i) {int s = o; if (i < ln) s += l.a[i]; if (i < rn) s += r.a[i]; o = s >= base; if (o) s -= base; ret.a[i] = s;} if (o) ret.a.push_back(1); return ret;} inline friend lnum operator-(const lnum &l, const lnum &r) {lnum ret(0, l.base); int base = l.base; int n = l.len(); int rn = r.len(); ret.a.resize(n); int o = 0; for(int i = 0; i < n; ++i) {int s = l.a[i] - o; if (i < rn) s -= r.a[i]; o = s < 0; if (o) s += base; ret.a[i] = s;} if (ret.len() > 1 && !ret.a.back()) ret.a.pop_back(); return ret;} inline friend lnum operator*(const lnum &l, const lnum &r) {lnum ret(0, l.base); int base = l.base; if (l.len() * r.len() > 1000000) {vector<cbase> fa (l.a.begin(), l.a.end()), fb (r.a.begin(), r.a.end()); int n = 1; while (n < max (l.len(), r.len())) n <<= 1; n <<= 1; fa.resize (n), fb.resize (n); fft (fa, false), fft (fb, false); for (int i = 0; i < n; ++i) fa[i] *= fb[i]; fft (fa, true); ret.a.resize(n); for (int i = 0; i < n; ++i) ret.a[i] = int (fa[i].real() + 0.5); int carry = 0; for (int i=0; i < n; ++i) {ret.a[i] += carry; carry = ret.a[i] / base; ret.a[i] %= base;}} else {ret.a.resize(l.len() + r.len()); for (int i = 0; i < l.len(); ++i) for (int j = 0, carry = 0; j < r.len() || carry; ++j) {long long cur = ret.a[i + j] + (ll)l.a[i] * (j < r.len() ? r.a[j] : 0) + carry; ret.a[i + j] = cur % base; carry = cur / base;}} while (ret.len() > 1 && !ret.a.back()) ret.a.pop_back(); return ret;} inline friend lnum operator/(const lnum &l, const int &r) {lnum ret(0, l.base); ret.a.resize(l.len()); int carry = 0; for(int i = l.len() - 1; i >= 0; --i) {long long cur = l.a[i] + (ll)carry * l.base; ret.a[i] = cur / r; carry = cur % r;} while (ret.len() > 1 && ret.a.back() == 0) ret.a.pop_back(); return ret;}  inline friend bool operator<(const lnum &l, const lnum &r) {if (l.len() < r.len()) return true; if (l.len() > r.len()) return false; int n = l.len(); for(int i = n - 1; i >= 0; --i) {if (l.a[i] < r.a[i]) return true; if (l.a[i] > r.a[i]) return false;} return false;} inline friend bool operator>(const lnum &l, const lnum &r) {return r < l;} inline friend bool operator==(const lnum &l, const lnum &r) {if (l.len() != r.len()) return false; int n = l.len(); for(int i = n - 1; i; --i) {if (l.a[i] != r.a[i]) return false;} return true;} inline friend bool operator!=(const lnum &l, const lnum &r) {return !(l == r);} inline void print() {if (base == 1000000000) {printf("%d", a.back()); for(int i = a.size() - 2; i >=0; --i) printf("%09d", a[i]);} else {for(int i = a.size() - 1; i >= 0; --i) printf("%d", a[i]);}}};

int main()
{
    in(n);
    if (n == 1)
    {
        puts("-1");
    }
    else
    {
        ford(i, n)
            cout << i + 1 << " ";
    }
    return 0;
}

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main(){
    int n;
    cin >> n;
    vector<int> vec;
    for(int i = 0; i < n; i++){
        int k;
        cin >> k;
        vec.push_back(k);
    }
    sort(vec.begin(), vec.end());
    if(n > 2){
        for(int i = vec.size() - 1; i >= 0; i--){
        cout << i << " ";
        }
        cout << endl;
    } else{
        cout << -1 << endl;
    }

    return 0;
}

#include <iostream>

using namespace std;
int main()
{
    int n;
    cin>>n;
    cout<<"-1";
    return 0;
}

#include <iostream>

using namespace std;

int main()
{
   int n;

   if(n==1 || n==2){
       int x=-1;
        cout<<x<<endl;
   }
    else{
        for(int i=n;i>=1;i--)
            cout<<i<<" ";
    }
   return 0;
}

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cassert>
#include <cstdio>
#include <vector>
#include <cmath>
#include <ctime>
#include <set>
#include <map>

typedef long long ll;

using namespace std;
int n;
int main()
{

    cin>>n;
	if(n==1)
		cout<<"-1";
	else{
	for(int i=0; i<n-1; i++)
		cout<<"2 ";
		cout<<"1";
	}

	return 0;
}

#include <cstdio>

using namespace std;

int main() {
	int N;
	fscanf( stdin, "%d", &N );
	if ( N == 1 ) {
		fprintf( stdout, "-1\n" );
		return 0;
	}

	fprintf( stdout, "%d ", N - 1 );

	for ( int i = 0; i < N - 2; ++i ) {
		fprintf( stdout, "%d ", i );
	}

	return 0;
}

#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <algorithm>
#include <set>

#define ll long long

using namespace std;

int main()
{

    int n;
    cin>>n;

    cout<<"-1";

        return 0;
}

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
   int n;
   cin>>n;
   int a[n];
   /*
   for(int i=0;i<n;i++)
   {
         cin>>a[i];
           }*/

   if(n==1||n==0)
   {
        cout<<-1;
        return 0;
           }

         for(int i=n;i>0;i--)
         {
               cout<<i;
                 }
           /*
      for(int i=1;i<n-1;i++)
      {
            for(int j=1;j<n-1;j++)
            {
          if   (a[j]>a[j+1])
          {
              swap(a[j],a[j+1]);
               }
               }
               }
            cout<<endl;
            for(int j=0;j<n;j++)
            {
                   cout<<a[j];
                    } */

                   return 0;

    }

#include<iostream>
#include<vector>
#include<set>
#include<string>
#include<cstring>
#include<algorithm>
#include<queue>
#include<unordered_map>
using namespace std;
int main()
{
    int numberofboy,numberofgirl;
    cin>>numberofboy;
    if(numberofboy==1)
    {
    cout<<-1<<endl;
    }
    return 0;
}

#include <bits/stdc++.h>
using namespace std;

#define endl "\n"
#define mod 1000000007

#define int long long

#define f(i,a,n) for(int i = a; i < n; i++)
#define fs(i,a,n,k) for(int i = a; i < n; i+=k)

#define fr(i,n) for(int i = n; i >= 0; i--)
#define frs(i,a,n,k) for(int i=n; i>=a; i-=k)

#define out1(a) cout << a << endl
#define out2(a,b) cout << a << " " << b << endl
#define out3(a,b,c) cout << a << " " << b << " " << c << endl

signed main(){
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif

    //enable fast I/O
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    int n;
    cin >> n;

    fr(i, n-1){
        cout << "i ";
    }
    cout << endl;

    return 0;
}

#include<iostream>
#include<vector>
#include<stdio.h>
#include<math.h>
#include<algorithm>
using namespace std;

int main (){
int n ;cin >> n;

if (n==1 || n== 2){cout << -1 << endl;return 0;}
for(int i =n ;i>0;i--)
    cout << i;
cout << endl;
return 0;
}

#include <stdio.h>
#include <string.h>

int main()
{
	int n;
	scanf("%d",&n);
	if(n==1&&n==2)
		printf("-1");
	else
	{
		printf("%d",n-1);
		printf("%d",n);
		for(int i=n-2;i>=1;i--)
			printf("%d",i);
	}
	return 0;
}

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main(){
    int n;
    cin >> n;
    vector<int> vec;
    for(int i = 0; i < n; i++){
        int k;
        cin >> k;
        vec.push_back(k);
    }
    sort(vec.begin(), vec.end());
    if(n > 2){
        for(int i = vec.size() - 1; i >= 0; i--){
        cout << vec[i] << " ";
        }
        cout << endl;
    } else{
        cout << -1 << endl;
    }

    return 0;
}

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n,i;
    cin>>n;
    cout<<"-1"<<endl;
    return 0;
}

#include <bits/stdc++.h>

#define f first
#define s second
#define mp make_pair
#define pb push_back

using namespace std;

typedef long long ll;

int main ()
{
    int n;

    cin >> n;

    cout << -1;
}

#include<iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    if(n==1)
    {
        cout<<"-1";
        return 0;
    }
    else
    {
        cout<<n-1<<" ";
        for(int i=1;i<n;i++)
        {
            cout<<i<<" ";
        }
    }
}

#include <stdio.h>

int main(){
	int n;
	int i;
	int temp;
	scanf("%d", &n);

	for(i = 1; i < n - 1;i++){
		for(int j = i; j < n - 1;j++){
			printf("%d ", i);
		}
	}
	if(i == 1){
		printf("-1");
	}

	return 0;
}

#include<stack>
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
#include<vector>
#include<math.h>
#include<algorithm>
#define ll long long
using namespace std;
int main(){
	int n,i;
	while(scanf("%d",&n)!=EOF)
	{
		if(n<=2)
		printf("-1");
		else
		{
			for(i=n;i>0;i--)
			printf("%d ",n);
		}
		printf("\n");
	}
	return 0;
}/*2018-08-02 19:42:03.926*/

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#include<vector>

using namespace std;
typedef __int64 LL;
int n,m;

int main(){
    int i,j,k,maxn,d=1;
    scanf("%d",&n);
    if(n<=2){
        puts("-1");
    }else{
        for(i=1;i<n;i++) printf("%d ",i);
        puts("0");
    }
    return 0;
}

#include <iostream>

using namespace std;

void printArray(int arr[], int length){
    for (int i=0; i<length; i++){
        cout<<arr[i];
        cout<< " ";
    }
}

void sortMe(int arr[], int length){
    for (int i=0; i<length-1; i++){
        for (int j=i; j<length-1; j++){
            if (arr[j]> arr[j+1]){
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
    printArray(arr, length);
}

void findCounterexample()
{
    int n;
    cin >> n;
    if (n==0 || n==1 || n==2){
        cout<<-1;
    }
    int arr[n];
    int x = 100;
    for (int i=0; i<n; i++){
        arr[i] = x;
        x = x-1;
    }
    printArray(arr, n);
  //  cout<<endl;
 //   sortMe(arr, n);
}

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

#include<iostream>
#include<cstdio>
using namespace std;

int main()
{
   int n;
   scanf("%d",&n);
   if(n==1)
   puts("-1");
   else
   {
     for(int i=1;i<n;++i)
     {
       printf("%d ",i);

     }
     printf("%d\n",n);

   }
   return 0;
}

#include <iostream>
#include <stdio.h>
#include <math.h>
#include <climits>
#include <stdlib.h>
#include <vector>
#include <cstdlib>
#include <map>
#include <list>
#include <algorithm>
#include <stack>
#include <queue>
#include <math.h>

#define pb(x) push_back(x);

using namespace std;

int main()
{
    #ifndef ONLINE_JUDGE
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
    #endif

    int n;
    cin >> n;
    if (n <= 2) { cout << -1; return 0;}
    cout << 2 << ' ';
    for(int i = 0;i < n-1; ++i)
    {
        cout << 100 - i << ' ';
    }
    return 0;
}

#include <iostream>

using namespace std;

int main(){

	int num;
	cin >> num ;

	(num == 1 || num == 2)?cout<<-1:cout<<num-1;

	return 0;
}

#include<cstdio>

int main()
{
    int n;
    while(scanf("%d", &n)==1)
    {
        if(n==1)
        {
            printf("-1\n");
        }
        else
        {
            printf("1");
            for(int i=2; i<=n; i++) printf(" %d", i);
            printf("\n");
        }
    }
    return 0;
}

/*
 * Created by: Son Dinh
 */
#include<bits/stdc++.h>

using namespace std;

#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define sqr(x) (x)*(x)
#define sz(X) (int)(X).size()
#define all(x) x.begin(),x.end()

typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;

const int mod=1e9+7;

int n;
int main(){
    scanf("%d",&n);
    if(n==1) return !printf("-1");
    for(int i=n;i>=1;--i) printf("%d ",n);
    return 0;
}

#include <stdlib.h>
#include <algorithm>
#include <string>
#include <cstring>
#include <vector>
#include <utility>
#include <fstream>
#include <math.h>
#include <iostream>
using namespace std;
bool func(int i,int j)
{
    return(i > j);
}
int main()
{
    long long int n, k, b, t, res=1,res1=1,i=0;
    cin >> n;
    if (n <=2 ) {
        cout << -1;
        return 0;
    }
    else
    for (int i = n; i >= 1; i--)
        cout << i;
    //system("pause");
    return 0;
}

#include <bits/stdc++.h>
using namespace std;

const int SIZE = 1e5+5;
typedef long long ll;

ll arr[SIZE];
ll soma[SIZE];
ll l[SIZE];
ll r[SIZE];
ll d[SIZE];
ll soma2[SIZE];

int main() {
	int n;
	cin >> n;
	if(n <= 2) {
		cout << -1 << '\n';
	} else {
		for(int i = 0; i < n - 1; i++) {
			cout << 1 << ' ';
		}
		cout << 2 << '\n';
	}
}
// 1520612469054

#include <cstdio>

int main()
{
    int n;
    scanf("%d", &n);
    puts("-1");
    return 0;
}

# include <iostream>
using namespace std;
int main()
{
    int n,i;
    cin>>n;
    if(n<=1)cout<<"-1"<<endl;
    else for(i=n;i>=1;i--)cout<<i<<" ";
}

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<stdio.h>
#include<string.h>
#include<queue>
#include<cmath>
#include<map>
#include<set>
#include<vector>
using namespace std;
#define inf 0x3f3f3f
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,a,n) for(int i=n;i>=a;i--)
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define mem(a,b) memset(a,b,sizeof(a));
#define lowbit(x)  x&-x;
typedef long long ll;
int a[100]={5,4,3,2,1};
int main(){
	int n;
	while(cin>>n){
		if(n<=2) cout<<-1<<endl;
		else{
			per(i,3,n){
				cout<<i<<" ";
			}
			cout<<1<<endl;
		}
	}
}
/*2018-08-02 20:29:09.836*/

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin >> n;
    if(n <= 2)
    cout << -1;
    else{
        cout << 5 << " " << 4 << " " << 3<< " ";
        for(int i= 0; i < n-3; i++){
        cout << 0 << " ";
        }
    }
   return 0;
}

/*
  In The Name Of GOD
  author: amirhoseinatari
*/
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef long double ld;
typedef pair<ll,ll> pll;
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef vector<ll> vl;
#define all(x) x.begin(), x.end()
#define pb push_back
#define pp() pop_back()
#define mp make_pair
#define fir first
#define sec second
#define momaz(x) cout.precision(x);cout<<fixed
#define _ ios_base::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL);
#define debug(args...) { string _s = #args; replace(_s.begin(), _s.end(), ',', ' '); stringstream _ss(_s); istream_iterator<string> _it(_ss);cout<<string(20,'#')<<endl;err(_it, args); }
void err(istream_iterator<string> it) {} template<typename T, typename... Args> void err(istream_iterator<string> it, T a, Args... args) {cout << *it << " -> " << a << endl;err(++it, args...);}
///freopen("input.txt","r",stdin);   add to main()
///freopen("output.txt","w",stdout);     //

/*
</head>
<body>
*/

///const ll maxn = ??? ,mod = ??? ;

int main()
{_
	int n;cin>>n;
	if(n<3)
        return cout<<-1,0;
    cout<<1<<" "<<n;
    for(int i=2;i<n;i++)
        cout<<" "<<i;
    return 0;
}
///Attar81 :)

#include<iostream>
using namespace std;

int a[100];

int main()
{
	int tot;
	while(~scanf("%d",&tot))
	{
		/*for(int i = 1 ; i <= tot ; i ++)
		{
			scanf("%d",&a[i]);
		}
		for(int i = 1; i < tot-1 ; i ++)
		{
			for(int j = i ; j <= tot -1 ; j ++)
			{
				if(a[j] > a[j+1])
				{
					int tmp = a[j];
					a[j] = a[j+1];
					a[j+1] = tmp;
				}
			}
		}
		for(int i = 1; i <= tot ; i ++)
			printf("%d ",a[i]);
		printf("\n");*/
		if(tot <= 3)
			printf("-1\n");
		else
		{
			printf("3 2 5 1");
			for(int i = tot - 4; i <= tot ; i ++)
			{
				printf(" %d",i);
			}
			printf("\n");
		}
	}
	return 0;
}

/*
简单
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
#include<iostream>
#include<queue>
//#include<map>
#include<math.h>
using namespace std;
typedef long long ll;
//typedef __int64 int64;
const int maxn = 105;
const int inf = 0x7fffffff;
const int pi=acos(-1.0);
int main(){
     freopen("input.txt","r",stdin);
    int n;
    int a[ 55 ];
    a[ 1 ]=2,a[ 2 ]=1,a[ 3 ]=3;
    for( int i=4;i<=50;i++ ) a[ i ]=i;
    while( scanf("%d",&n)==1 ){
        if( n==1 ||n==2 ) printf("-1\n");
        else {
            for( int i=1;i<=n;i++ )
                if( i==1 ) printf("%d",a[ i ]);
                else printf(" %d",a[ i ]);
            printf("\n");
        }
    }
    return 0;
}

#include <bits/stdc++.h>

using namespace std;

#define IOS                       \
    ios_base::sync_with_stdio(0); \
    cin.tie(NULL);                \
    cout.tie(NULL);
#define pb push_back
#define mp make_pair
#define Debug(x) cout << #x " = " << (x) << endl
#define SORT(a) sort(a.begin(), a.end())
#define SORTR(a) sort(a.rbegin(), a.rend())
#define mod 1000000007
#define PI 3.141592653589793238

int main()
{
    IOS;

    int n;
    cin >> n;

    if (n == 1)
        cout << -1 << endl;
    else
    {
        for (int i = n; i > 0; i--)
            cout << i << " ";
        cout << endl;
    }

    return 0;
}

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define F first
#define S second
#define pb push_back
#define mp make_pair
#define mod 1000000007
#define ll long long
#define vlli vector<long long int>
#define vi vector<int>
#define vs vector<string>
#define vplli vector< pair< long long int, long long int> >
#define vps vector< pair< string, string> >
#define vpi vector< pair< int, int> >
#define all(x) x.begin(), x.end()
#define fast ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define scan(arr,a,n) for(int i=(a);i<(n);i++)cin>>(arr)[i];
#define print(arr,a,n) for(int i=(a);i<(n);i++)cout<<(arr)[i]<<" ";

int main(){
    fast;

    ll n,i;
    cin>>n;
    if(n==1){
        cout<<-1;
        return 0;
    }
    else{
        vi v;
        for(i=2;i<=n;i++){
            v.pb(i);
        }
        v.pb(1);
        print(v,0,v.size());
    }
}

#include <cstdio>
#include <sstream>
#include <cstdlib>
#include <cctype>
#include <cmath>
#include <algorithm>
#include <set>
#include <queue>
#include <stack>
#include <list>
#include <iostream>
#include <fstream>
#include <numeric>
#include <string>
#include <vector>
#include <cstring>
#include <map>
#include <iterator>
#include <bitset>

#define inf 999999999
#define eps 1e-12

using namespace std;

int main()
{
    int n,i;
    cin>>n;
    if(n==1)
    cout<<"-1";
    else
    {
        cout<<"1";
        for(i=2;i<=n;i++)
        cout<<" "<<i;
    }
    cout<<endl;
    return 0;
}

#include <bits/stdc++.h>
using namespace std;

int main() {
        ios_base::sync_with_stdio(false);
        cin.tie(nullptr);
        cout.tie(nullptr);

        int n;
        cin >> n;

        if(n < 3) cout << -1 << endl;
        else {
                while(n--) cout << n << " ";
        }

        return 0;
}

#include<iostream>
using namespace std;
int main(){
     int  n;
     cin>>n;

         cout<<-1;

return 0;
}