import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        int num;
        for(int i=1; i<= x; ++i){
		if(output1(i) != 0){
            System.out.printf(" %d", output1(i));
		}

		else if(output2(i) != 0){
		System.out.printf(" %d", output2(i));
		}
        }

        System.out.printf("\n");

    }
    private static int output1(int i){
        if((i % 3) == 0){
            return i;
        }
        else if(i>10 && output2(i/10) != 0){
		return i;
	}
	else{
		return 0;
	}
}

	private static int output2(int i){
        if((i % 10) == 3){
            return i;
        }
        else if( i>10 && output2(i/10) != 0){
            return i;
        }
        else{
            return 0;
         }
    }
} import java.util.Scanner; Scanner java.util public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        int num;
        for(int i=1; i<= x; ++i){
		if(output1(i) != 0){
            System.out.printf(" %d", output1(i));
		}

		else if(output2(i) != 0){
		System.out.printf(" %d", output2(i));
		}
        }

        System.out.printf("\n");

    }
    private static int output1(int i){
        if((i % 3) == 0){
            return i;
        }
        else if(i>10 && output2(i/10) != 0){
		return i;
	}
	else{
		return 0;
	}
}

	private static int output2(int i){
        if((i % 10) == 3){
            return i;
        }
        else if( i>10 && output2(i/10) != 0){
            return i;
        }
        else{
            return 0;
         }
    }
} Main public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        int num;
        for(int i=1; i<= x; ++i){
		if(output1(i) != 0){
            System.out.printf(" %d", output1(i));
		}

		else if(output2(i) != 0){
		System.out.printf(" %d", output2(i));
		}
        }

        System.out.printf("\n");

    } main {
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        int num;
        for(int i=1; i<= x; ++i){
		if(output1(i) != 0){
            System.out.printf(" %d", output1(i));
		}

		else if(output2(i) != 0){
		System.out.printf(" %d", output2(i));
		}
        }

        System.out.printf("\n");

    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int x = sc.nextInt(); x sc.nextInt() sc.nextInt sc int num; num for(int i=1; i<= x; ++i){
		if(output1(i) != 0){
            System.out.printf(" %d", output1(i));
		}

		else if(output2(i) != 0){
		System.out.printf(" %d", output2(i));
		}
        } int i=1; int i=1; i 1 i<= x i x ++i ++i i {
		if(output1(i) != 0){
            System.out.printf(" %d", output1(i));
		}

		else if(output2(i) != 0){
		System.out.printf(" %d", output2(i));
		}
        } {
		if(output1(i) != 0){
            System.out.printf(" %d", output1(i));
		}

		else if(output2(i) != 0){
		System.out.printf(" %d", output2(i));
		}
        } if(output1(i) != 0){
            System.out.printf(" %d", output1(i));
		}

		else if(output2(i) != 0){
		System.out.printf(" %d", output2(i));
		} output1(i) != 0 output1(i) output1 i 0 {
            System.out.printf(" %d", output1(i));
		} System.out.printf(" %d", output1(i)) System.out.printf System.out System System.out " %d" output1(i) output1 i if(output2(i) != 0){
		System.out.printf(" %d", output2(i));
		} output2(i) != 0 output2(i) output2 i 0 {
		System.out.printf(" %d", output2(i));
		} System.out.printf(" %d", output2(i)) System.out.printf System.out System System.out " %d" output2(i) output2 i System.out.printf("\n") System.out.printf System.out System System.out "\n" String[] args args private static int output1(int i){
        if((i % 3) == 0){
            return i;
        }
        else if(i>10 && output2(i/10) != 0){
		return i;
	}
	else{
		return 0;
	}
} output1 {
        if((i % 3) == 0){
            return i;
        }
        else if(i>10 && output2(i/10) != 0){
		return i;
	}
	else{
		return 0;
	}
} if((i % 3) == 0){
            return i;
        }
        else if(i>10 && output2(i/10) != 0){
		return i;
	}
	else{
		return 0;
	} (i % 3) == 0 (i % 3) i 3 0 {
            return i;
        } return i; i if(i>10 && output2(i/10) != 0){
		return i;
	}
	else{
		return 0;
	} i>10 && output2(i/10) != 0 i>10 i 10 output2(i/10) != 0 output2(i/10) output2 i/10 i 10 0 {
		return i;
	} return i; i {
		return 0;
	} return 0; 0 int i i private static int output2(int i){
        if((i % 10) == 3){
            return i;
        }
        else if( i>10 && output2(i/10) != 0){
            return i;
        }
        else{
            return 0;
         }
    } output2 {
        if((i % 10) == 3){
            return i;
        }
        else if( i>10 && output2(i/10) != 0){
            return i;
        }
        else{
            return 0;
         }
    } if((i % 10) == 3){
            return i;
        }
        else if( i>10 && output2(i/10) != 0){
            return i;
        }
        else{
            return 0;
         } (i % 10) == 3 (i % 10) i 10 3 {
            return i;
        } return i; i if( i>10 && output2(i/10) != 0){
            return i;
        }
        else{
            return 0;
         } i>10 && output2(i/10) != 0 i>10 i 10 output2(i/10) != 0 output2(i/10) output2 i/10 i 10 0 {
            return i;
        } return i; i {
            return 0;
         } return 0; 0 int i i public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        int num;
        for(int i=1; i<= x; ++i){
		if(output1(i) != 0){
            System.out.printf(" %d", output1(i));
		}

		else if(output2(i) != 0){
		System.out.printf(" %d", output2(i));
		}
        }

        System.out.printf("\n");

    }
    private static int output1(int i){
        if((i % 3) == 0){
            return i;
        }
        else if(i>10 && output2(i/10) != 0){
		return i;
	}
	else{
		return 0;
	}
}

	private static int output2(int i){
        if((i % 10) == 3){
            return i;
        }
        else if( i>10 && output2(i/10) != 0){
            return i;
        }
        else{
            return 0;
         }
    }
} public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        int num;
        for(int i=1; i<= x; ++i){
		if(output1(i) != 0){
            System.out.printf(" %d", output1(i));
		}

		else if(output2(i) != 0){
		System.out.printf(" %d", output2(i));
		}
        }

        System.out.printf("\n");

    }
    private static int output1(int i){
        if((i % 3) == 0){
            return i;
        }
        else if(i>10 && output2(i/10) != 0){
		return i;
	}
	else{
		return 0;
	}
}

	private static int output2(int i){
        if((i % 10) == 3){
            return i;
        }
        else if( i>10 && output2(i/10) != 0){
            return i;
        }
        else{
            return 0;
         }
    }
} Main
import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        int num;
        for(int i=1; i<= x; ++i){
		if(output1(i) != 0){
            System.out.printf(" %d", output1(i));
		}

		else if(output2(i) != 0){
		System.out.printf(" %d", output2(i));
		}
        }

        System.out.printf("\n");

    }
    private static int output1(int i){
        if((i % 3) == 0){
            return i;
        }
        else if(i>10 && output2(i/10) != 0){
		return i;
	}
	else{
		return 0;
	}
}

	private static int output2(int i){
        if((i % 10) == 3){
            return i;
        }
        else if( i>10 && output2(i/10) != 0){
            return i;
        }
        else{
            return 0;
         }
    }
}