N = gets.to_i A = N.times.map{ gets.to_i } def generate_nums size (0...size).map{|i| rand(0...(size-i))} end def dec_nums nums array = (0...nums.size).to_a nums.map{|i| array.delete_at(i)} end def check_nums nums nums.each.with_index{|num, i| return i if nums[i] == A[i] } return nil end def change_nums nums, index nums[index] = rand(0...(nums.size - index)) nums end if A.uniq.size == 1 p -1 else nums = generate_nums N while (ng = check_nums(dec_nums(nums))) != nil change_nums nums, ng end dec_nums(nums).each{|i| p i } end