n, m = gets.split.map(&:to_i)

if m % n == 0
    puts m / n
    return
end

maxval = 1 + Math.sqrt(m).to_i
is_prime = [true] * maxval
is_prime[0] = false
is_prime[1] = false
is_prime.each_with_index{|isp, num|
    if isp
        (0..maxval).step(num).drop(2).each{|i|
            is_prime[i] = false
        }
    end
}
primes = is_prime.each_with_index.map{|isp, num|
    if isp
        num
    else
        nil
    end
}.select{|n| n != nil}

primes.each{|p|
    if p >= n && m % p == 0
        puts m / p
        return
    end
}
primes.reverse_each{|p|
    if m % p == 0
        puts p
        return
    end
}

puts 1
