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;
}