#!ruby -rprime N, K = gets.split.map &:to_i x = N.prime_division x_primes_h = x.to_h x_primes_h.default = 0 max_n = ans = 0 (1...N).each{|i| y = i.prime_division common_divisor = y.map{|k, v| [x_primes_h[k], v].min }.sum if common_divisor >= K y_n = y.inject(1){|r, (_, v)| r * (v + 1) } if y_n > max_n max_n = y_n ans = i end end } p ans