output_description: Print the minimum required number of operations
  
  * * *
input_description: The input is given from Standard Input in the following format:
  
      
      
      N
      p_1 p_2 .. p_N
attempt: def swap(a,b,c):
      x = a[b]
      a[b] = a[c]
      a[c] = x
   
       
  n = input()
  a = list(map(int,input().split()))
  alen = len(a)
  a.append(0.5)
  a.append(0.5)
  ans = 0
   
  med = [0 for x in range(alen +3)]
   
  for i in range(alen):
      if a[i] == i+1:
          med[i+1] = 1
   
  for i in range(len(med)):
      if med[i] == 1:
        if med[i+1] == 1:
              swap(a,a[i-1],a[i])
  			med[i+1] == 0
              ans += 1
        else:
          swap(a,i,i+1)
          ans += 1
          
  print(ans)
problem_description: Statement
  
  You are given a permutation p_1,p_2,...,p_N consisting of 1,2,..,N. You can
  perform the following operation any number of times (possibly zero):
  
  Operation: Swap two **adjacent** elements in the permutation.
  
  You want to have p_i ≠ i for all 1≤i≤N. Find the minimum required number of
  operations to achieve this.
samples: [{"input": "5\n    1 4 3 5 2", "output": "2\n    \n\nSwap 1 and 4, then swap 1 and 3. p is now 4,3,1,5,2 and satisfies the\ncondition. This is the minimum possible number, so the answer is 2.\n\n* * *"}, {"input": "2\n    1 2", "output": "1\n    \n\nSwapping 1 and 2 satisfies the condition.\n\n* * *"}, {"input": "2\n    2 1", "output": "0\n    \n\nThe condition is already satisfied initially.\n\n* * *"}, {"input": "9\n    1 2 4 9 5 8 7 3 6", "output": "3"}]