/** goto 文は、C/C++言語などで使うことのできる文で、実行されると無条件に指定されたラベルに処理が飛びます。
 * 例えば goto CHECK_NUM; という文が実行されると、プログラムの中で CHECK_NUM: と書かれた行に処理が移ります。
 * この機能を使って、繰り返し処理なども実現することができます。
 * 一方、goto 文は自由度が高すぎ、プログラムの可読性に影響するため、可能な限り使わないことが推奨されています。
 * 次のC++言語のプログラムと同じ動作をするプログラムを作成してください。ただし、goto 文は使わないで実装してみましょう。
 */

/*sucannerクラス使うためにインポート*/
import java.util.Scanner;

class Main {
	// プログラムのエントリポイント
	public static void main(String[] args) {
		// 入力ストリームの生成
		Scanner sc = new Scanner(System.in);
		// 処理を繰り返す

		int intN = sc.nextInt();
		int i = 0;
		int x = 0;
		for (i = 1; i <= intN; i++) {
			if (i % 3 == 0) {
				System.out.print(" " + i);
			} else if (i % 10 == 3) {
				System.out.print(" " + i);
			} else if (i / 1000 == 3) {
				System.out.print(" " + i);
			} else if ((x = i % 1000) / 100 == 3) {
				System.out.print(" " + i);
			} else if ((x = x % 100) / 10 == 3) {
				System.out.print(" " + i);
			}
		}
		System.out.println();
	}
} import java.util.Scanner; Scanner java.util class Main {
	// プログラムのエントリポイント
	public static void main(String[] args) {
		// 入力ストリームの生成
		Scanner sc = new Scanner(System.in);
		// 処理を繰り返す

		int intN = sc.nextInt();
		int i = 0;
		int x = 0;
		for (i = 1; i <= intN; i++) {
			if (i % 3 == 0) {
				System.out.print(" " + i);
			} else if (i % 10 == 3) {
				System.out.print(" " + i);
			} else if (i / 1000 == 3) {
				System.out.print(" " + i);
			} else if ((x = i % 1000) / 100 == 3) {
				System.out.print(" " + i);
			} else if ((x = x % 100) / 10 == 3) {
				System.out.print(" " + i);
			}
		}
		System.out.println();
	}
} Main // プログラムのエントリポイント
	public static void main(String[] args) {
		// 入力ストリームの生成
		Scanner sc = new Scanner(System.in);
		// 処理を繰り返す

		int intN = sc.nextInt();
		int i = 0;
		int x = 0;
		for (i = 1; i <= intN; i++) {
			if (i % 3 == 0) {
				System.out.print(" " + i);
			} else if (i % 10 == 3) {
				System.out.print(" " + i);
			} else if (i / 1000 == 3) {
				System.out.print(" " + i);
			} else if ((x = i % 1000) / 100 == 3) {
				System.out.print(" " + i);
			} else if ((x = x % 100) / 10 == 3) {
				System.out.print(" " + i);
			}
		}
		System.out.println();
	} main {
		// 入力ストリームの生成
		Scanner sc = new Scanner(System.in);
		// 処理を繰り返す

		int intN = sc.nextInt();
		int i = 0;
		int x = 0;
		for (i = 1; i <= intN; i++) {
			if (i % 3 == 0) {
				System.out.print(" " + i);
			} else if (i % 10 == 3) {
				System.out.print(" " + i);
			} else if (i / 1000 == 3) {
				System.out.print(" " + i);
			} else if ((x = i % 1000) / 100 == 3) {
				System.out.print(" " + i);
			} else if ((x = x % 100) / 10 == 3) {
				System.out.print(" " + i);
			}
		}
		System.out.println();
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int intN = sc.nextInt(); intN sc.nextInt() sc.nextInt sc int i = 0; i 0 int x = 0; x 0 for (i = 1; i <= intN; i++) {
			if (i % 3 == 0) {
				System.out.print(" " + i);
			} else if (i % 10 == 3) {
				System.out.print(" " + i);
			} else if (i / 1000 == 3) {
				System.out.print(" " + i);
			} else if ((x = i % 1000) / 100 == 3) {
				System.out.print(" " + i);
			} else if ((x = x % 100) / 10 == 3) {
				System.out.print(" " + i);
			}
		} i = 1; i = 1 i 1 i <= intN i intN i++ i++ i {
			if (i % 3 == 0) {
				System.out.print(" " + i);
			} else if (i % 10 == 3) {
				System.out.print(" " + i);
			} else if (i / 1000 == 3) {
				System.out.print(" " + i);
			} else if ((x = i % 1000) / 100 == 3) {
				System.out.print(" " + i);
			} else if ((x = x % 100) / 10 == 3) {
				System.out.print(" " + i);
			}
		} {
			if (i % 3 == 0) {
				System.out.print(" " + i);
			} else if (i % 10 == 3) {
				System.out.print(" " + i);
			} else if (i / 1000 == 3) {
				System.out.print(" " + i);
			} else if ((x = i % 1000) / 100 == 3) {
				System.out.print(" " + i);
			} else if ((x = x % 100) / 10 == 3) {
				System.out.print(" " + i);
			}
		} if (i % 3 == 0) {
				System.out.print(" " + i);
			} else if (i % 10 == 3) {
				System.out.print(" " + i);
			} else if (i / 1000 == 3) {
				System.out.print(" " + i);
			} else if ((x = i % 1000) / 100 == 3) {
				System.out.print(" " + i);
			} else if ((x = x % 100) / 10 == 3) {
				System.out.print(" " + i);
			} i % 3 == 0 i % 3 i 3 0 {
				System.out.print(" " + i);
			} System.out.print(" " + i) System.out.print System.out System System.out " " + i " " i if (i % 10 == 3) {
				System.out.print(" " + i);
			} else if (i / 1000 == 3) {
				System.out.print(" " + i);
			} else if ((x = i % 1000) / 100 == 3) {
				System.out.print(" " + i);
			} else if ((x = x % 100) / 10 == 3) {
				System.out.print(" " + i);
			} i % 10 == 3 i % 10 i 10 3 {
				System.out.print(" " + i);
			} System.out.print(" " + i) System.out.print System.out System System.out " " + i " " i if (i / 1000 == 3) {
				System.out.print(" " + i);
			} else if ((x = i % 1000) / 100 == 3) {
				System.out.print(" " + i);
			} else if ((x = x % 100) / 10 == 3) {
				System.out.print(" " + i);
			} i / 1000 == 3 i / 1000 i 1000 3 {
				System.out.print(" " + i);
			} System.out.print(" " + i) System.out.print System.out System System.out " " + i " " i if ((x = i % 1000) / 100 == 3) {
				System.out.print(" " + i);
			} else if ((x = x % 100) / 10 == 3) {
				System.out.print(" " + i);
			} (x = i % 1000) / 100 == 3 (x = i % 1000) / 100 (x = i % 1000) x i % 1000 i 1000 100 3 {
				System.out.print(" " + i);
			} System.out.print(" " + i) System.out.print System.out System System.out " " + i " " i if ((x = x % 100) / 10 == 3) {
				System.out.print(" " + i);
			} (x = x % 100) / 10 == 3 (x = x % 100) / 10 (x = x % 100) x x % 100 x 100 10 3 {
				System.out.print(" " + i);
			} System.out.print(" " + i) System.out.print System.out System System.out " " + i " " i System.out.println() System.out.println System.out System System.out String[] args args
/** goto 文は、C/C++言語などで使うことのできる文で、実行されると無条件に指定されたラベルに処理が飛びます。
 * 例えば goto CHECK_NUM; という文が実行されると、プログラムの中で CHECK_NUM: と書かれた行に処理が移ります。
 * この機能を使って、繰り返し処理なども実現することができます。
 * 一方、goto 文は自由度が高すぎ、プログラムの可読性に影響するため、可能な限り使わないことが推奨されています。
 * 次のC++言語のプログラムと同じ動作をするプログラムを作成してください。ただし、goto 文は使わないで実装してみましょう。
 */

/*sucannerクラス使うためにインポート*/
import java.util.Scanner;

class Main {
	// プログラムのエントリポイント
	public static void main(String[] args) {
		// 入力ストリームの生成
		Scanner sc = new Scanner(System.in);
		// 処理を繰り返す

		int intN = sc.nextInt();
		int i = 0;
		int x = 0;
		for (i = 1; i <= intN; i++) {
			if (i % 3 == 0) {
				System.out.print(" " + i);
			} else if (i % 10 == 3) {
				System.out.print(" " + i);
			} else if (i / 1000 == 3) {
				System.out.print(" " + i);
			} else if ((x = i % 1000) / 100 == 3) {
				System.out.print(" " + i);
			} else if ((x = x % 100) / 10 == 3) {
				System.out.print(" " + i);
			}
		}
		System.out.println();
	}
}