#include <iostream>

using namespace std;

int main()
{
    int zakres,j=1,k=2,m;
    cin>>zakres;
    int sito[zakres];
    //1-liczba pierwsza 2-niepierwsza
    for(int i=0; i<=zakres;i++)
        sito[i]=j++; //wypelnienie tablicy liczbami z zakresu(1,zakres)

    for(int i=0; i<zakres; i++) cout<<sito[i]<<" ";
    cout<<endl;
    //zalozenie Killavusa - kazdy element tablicy=0
    for(int i=0; i<zakres; i++) sito[i]=0;

    sito[0]=2;

    for(int x=0; x<=zakres; x++)
    {
        if(sito[x]==0)sito[x]=1;
        int l=2;
        for(m=k; (m*l-1)<=zakres; l++)
            sito[m*l-1]=2;
            k=m;
        k++;
    }

    for(int i=0; i<zakres; i++) cout<<sito[i]<<" ";
    return 0;
}
