/* eslint no-console: "off" */ let assert = require("assert"); function tokens(s) { return s.trim().split(/\s+/); } function div_ceil(a, b) { return Math.trunc(a/b) + ((((a<0)^(b>0)) && a%b) ? 1 : 0); } function div_floor(a, b) { return Math.trunc(a/b) + ((((a>0)^(b>0)) && a%b) ? 1 : 0); } function digits(n) { assert(n >= 0); if(n == 0) return [0]; let res = []; while(n > 0) { res.push(n % 10); n = div_floor(n, 10); } return res; } function TO_INT(s) { return parseInt(s, 10); } function is_ok(n) { if(n % 3 == 0) return true; return digits(n).includes(3); } function Main(input) { let [A, B] = tokens(input).map(s => TO_INT(s)); for(let i = A; i <= B; ++i) { if(is_ok(i)) { console.log(i); } } } Main(require("fs").readFileSync("/dev/stdin", "utf8"));