// AOJ ITP 1_5_D
#include<cstdio>

void call( int n )
{
	int i = 1;
	do
	{
		int x = i;
		
		if( x % 3 == 0 )
			printf( " %d", i );
		else
		{
			do
			{
				if( x % 10 == 3 )
				{
					printf( " %d", i );
					break;
				}
				x /= 10;
			} while( x );
		}
	}while( ++i <= n );

	puts("");

	return;
}

int main()
{
	int n;
	scanf( "%d", &n );
	call( n );
	
	return 0;
}
#include<iostream>
using namespace std;
int main(){
    int n,k,l,m,o;
    cin>>n;
    for(int i=3;i<=n;i++){
        k=i%10;
        l=i/1000;
        m=i/100%10;
        o=i/10%10;
        if(i%3==0){
            cout<<" "<<i;
        }else if(k==3 || l==3 || m==3 || o==3){
            cout<<" "<<i;
        }
    }
    cout<<endl;
    return 0;
}