#!/usr/bin/perl
use 5.016;
use warnings;
no warnings qw(recursion);

sub _f {
	my ($m, $n, $c) = @_;

	return ($n <= $m ?
		$c :
		_f($m, ((($n >= $m * 2) and ($n % 2 == 0)) ? $n / 2 : $n - 1), $c + 1)
	);
}

sub f { _f($_[0], $_[1], 0) }

say f(3, 10);
say f(3, 95);
say f(666, 2014);
