#include [[nodiscard]] static inline constexpr std::vector solve(const uint_fast32_t A, const uint_fast32_t B) noexcept { std::vector ans; ans.reserve(B - A); for (uint_fast32_t i = A; i <= B; ++i) if (i % 3 == 0 || std::to_string(i).find('3') != std::string::npos) ans.push_back(i); return ans; } static inline void output(const std::vector& ans) noexcept { for (uint_fast32_t i = 0; i != ans.size(); ++i) std::cout << ans[i] << '\n'; } int main() { std::cin.tie(nullptr); std::ios::sync_with_stdio(false); uint_fast32_t A, B; std::cin >> A >> B; output(solve(A, B)); return 0; }