const rl = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
const iter = rl[Symbol.asyncIterator]();
const readline = async():Promise<string>=>(await iter.next()).value;
(async function():Promise<Array<number>>{
const N = Number(await readline());
const res:number[] = [];
const temp:number[] = [];
let count:number = 1;
for(let i=1;i<=N;i++){
let useNum:number = temp.length===0?count:temp.pop();
while(isOdd(i+useNum)){
temp.push(useNum++);
}
res.push(useNum);
if(useNum>N) {
throw new Error('-1')
}
count++;
// console.log(`res:${res.toString()}|temp:${temp.toString()}`);
}
if (res.length<N) throw new Error('-1');
return res
})()
.then((res:Array<number>)=>console.log(res.join(' ')))
.catch((err)=>console.log(-1))
.finally(()=>rl.close());
function isOdd(num:number):boolean{
if([2,3,5,7,11,13,17,19,23,29].includes(num)) return true;
if(num%2===0) return false;
if(num%3===0) return false;
if(num%5===0) return false;
if(num%7===0) return false;
for(let i=11;i**2<=num;i+2){
if(num%i===0) return false;
}
return true;
}