L, R, M = gets.split.map(&:to_i) if L >= M puts 0 else a = 1 b = 1 1.upto(L - 1) do |n| a *= n a %= M b *= a b %= M end sum = 0 L.upto([R, M].min) do |n| a *= n a %= M b *= a b %= M sum += b sum %= M end puts sum end