import java.util.Scanner;
public class Main {

	public static void main(String[] args) {

//		入力nを読み取る
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int a=1;
		//aが0より大きい間
		while(a<=n){
			
			//計算用の変数b
			int b = a;
			//3で割れる時
			if(b%3==0){
				
				System.out.print(" "+a);
			
			//3で割れない時	
			}else{
				//0より大きい間
				while(b>0){
					//10で割った時3あまる時
					if(b%10==3){
						System.out.print(" "+a);
						break;
					}
					//位の移動
					b/=10;
				}
			}
			a++;
		}
		//改行
		System.out.println("");
	}
} import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {

//		入力nを読み取る
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int a=1;
		//aが0より大きい間
		while(a<=n){
			
			//計算用の変数b
			int b = a;
			//3で割れる時
			if(b%3==0){
				
				System.out.print(" "+a);
			
			//3で割れない時	
			}else{
				//0より大きい間
				while(b>0){
					//10で割った時3あまる時
					if(b%10==3){
						System.out.print(" "+a);
						break;
					}
					//位の移動
					b/=10;
				}
			}
			a++;
		}
		//改行
		System.out.println("");
	}
} Main public static void main(String[] args) {

//		入力nを読み取る
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int a=1;
		//aが0より大きい間
		while(a<=n){
			
			//計算用の変数b
			int b = a;
			//3で割れる時
			if(b%3==0){
				
				System.out.print(" "+a);
			
			//3で割れない時	
			}else{
				//0より大きい間
				while(b>0){
					//10で割った時3あまる時
					if(b%10==3){
						System.out.print(" "+a);
						break;
					}
					//位の移動
					b/=10;
				}
			}
			a++;
		}
		//改行
		System.out.println("");
	} main {

//		入力nを読み取る
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int a=1;
		//aが0より大きい間
		while(a<=n){
			
			//計算用の変数b
			int b = a;
			//3で割れる時
			if(b%3==0){
				
				System.out.print(" "+a);
			
			//3で割れない時	
			}else{
				//0より大きい間
				while(b>0){
					//10で割った時3あまる時
					if(b%10==3){
						System.out.print(" "+a);
						break;
					}
					//位の移動
					b/=10;
				}
			}
			a++;
		}
		//改行
		System.out.println("");
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc int a=1; a 1 while(a<=n){
			
			//計算用の変数b
			int b = a;
			//3で割れる時
			if(b%3==0){
				
				System.out.print(" "+a);
			
			//3で割れない時	
			}else{
				//0より大きい間
				while(b>0){
					//10で割った時3あまる時
					if(b%10==3){
						System.out.print(" "+a);
						break;
					}
					//位の移動
					b/=10;
				}
			}
			a++;
		} a<=n a n {
			
			//計算用の変数b
			int b = a;
			//3で割れる時
			if(b%3==0){
				
				System.out.print(" "+a);
			
			//3で割れない時	
			}else{
				//0より大きい間
				while(b>0){
					//10で割った時3あまる時
					if(b%10==3){
						System.out.print(" "+a);
						break;
					}
					//位の移動
					b/=10;
				}
			}
			a++;
		} int b = a; b a if(b%3==0){
				
				System.out.print(" "+a);
			
			//3で割れない時	
			}else{
				//0より大きい間
				while(b>0){
					//10で割った時3あまる時
					if(b%10==3){
						System.out.print(" "+a);
						break;
					}
					//位の移動
					b/=10;
				}
			} b%3==0 b%3 b 3 0 {
				
				System.out.print(" "+a);
			
			//3で割れない時	
			} System.out.print(" "+a) System.out.print System.out System System.out " "+a " " a {
				//0より大きい間
				while(b>0){
					//10で割った時3あまる時
					if(b%10==3){
						System.out.print(" "+a);
						break;
					}
					//位の移動
					b/=10;
				}
			} while(b>0){
					//10で割った時3あまる時
					if(b%10==3){
						System.out.print(" "+a);
						break;
					}
					//位の移動
					b/=10;
				} b>0 b 0 {
					//10で割った時3あまる時
					if(b%10==3){
						System.out.print(" "+a);
						break;
					}
					//位の移動
					b/=10;
				} if(b%10==3){
						System.out.print(" "+a);
						break;
					} b%10==3 b%10 b 10 3 {
						System.out.print(" "+a);
						break;
					} System.out.print(" "+a) System.out.print System.out System System.out " "+a " " a break; b/=10 b 10 a++ a System.out.println("") System.out.println System.out System System.out "" String[] args args public class Main {

	public static void main(String[] args) {

//		入力nを読み取る
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int a=1;
		//aが0より大きい間
		while(a<=n){
			
			//計算用の変数b
			int b = a;
			//3で割れる時
			if(b%3==0){
				
				System.out.print(" "+a);
			
			//3で割れない時	
			}else{
				//0より大きい間
				while(b>0){
					//10で割った時3あまる時
					if(b%10==3){
						System.out.print(" "+a);
						break;
					}
					//位の移動
					b/=10;
				}
			}
			a++;
		}
		//改行
		System.out.println("");
	}
} public class Main {

	public static void main(String[] args) {

//		入力nを読み取る
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int a=1;
		//aが0より大きい間
		while(a<=n){
			
			//計算用の変数b
			int b = a;
			//3で割れる時
			if(b%3==0){
				
				System.out.print(" "+a);
			
			//3で割れない時	
			}else{
				//0より大きい間
				while(b>0){
					//10で割った時3あまる時
					if(b%10==3){
						System.out.print(" "+a);
						break;
					}
					//位の移動
					b/=10;
				}
			}
			a++;
		}
		//改行
		System.out.println("");
	}
} Main
import java.util.Scanner;
public class Main {

	public static void main(String[] args) {

//		入力nを読み取る
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int a=1;
		//aが0より大きい間
		while(a<=n){
			
			//計算用の変数b
			int b = a;
			//3で割れる時
			if(b%3==0){
				
				System.out.print(" "+a);
			
			//3で割れない時	
			}else{
				//0より大きい間
				while(b>0){
					//10で割った時3あまる時
					if(b%10==3){
						System.out.print(" "+a);
						break;
					}
					//位の移動
					b/=10;
				}
			}
			a++;
		}
		//改行
		System.out.println("");
	}
}
