def main(): import sys n, *rest = map(int, sys.stdin.read().split()) a = rest[:n] sorted_a = sorted(a) if a == sorted_a: print(0) return # 找出目标数组的后缀是否正确 m = n while m > 0 and a[m-1] == sorted_a[m-1]: m -= 1 k = m if k == 0: # 整个数组都正确 print(0) return # 检查前k个元素是否是循环排列 temp_a = a[:k] temp_b = sorted_a[:k] # 判断temp_a是否是temp_b的一个循环移位 # 将temp_b重复两次,检查temp_a是否是子数组 double_b = temp_b + temp_b found = False for i in range(k): if double_b[i:i+k] == temp_a: found = True break if found: print(1) return # 如果没有找到满足条件的k,则需要购买两种工具 print(2) if __name__ == "__main__": main()