N = gets.to_i A = gets.split.map(&:to_i) B = A.sort if A.each_cons(2).count { |a, b| a > b } == 0 puts 0 exit end i = N - 1 while A[i] == B[i] && i >= 0 i -= 1 end C = A[0..i] D = C.size cnt = 0 D.times do |j| a = C[j] b = C[(j + 1) % D] cnt += 1 if a > b end m = (i == N - 1) ? A.max : A[i + 1..-1].max if cnt == 1 && C.max <= m puts 1 else puts 2 end