Problem p02641 (python)

Fixed submission:
# -*- coding: utf-8 -*-

X, N = map(int,input().split())

if( N == 0 ):
  #print("N=0")
  print(X)

else:
  P = list(map(int,input().split()))
  P_set = list(set(P))
  
  
  ans_chk = 0
  
  if ( X < P_set[0] or X > P_set[N-1] ):
    #print("X < P_set[0] or X > P_set[N-1]")
    print(X)
    ans_chk = 1
  
  if ( ans_chk==0 ):
    for i in range(N):
      if ( P_set[i] == X ):
        X_i = i
        break
      elif ( P_set[i] > X ):
        #print("P_set[i] > X")
        print(X)
        ans_chk = 1
        break
  
  if ( ans_chk==0 ):
    
    if ( X_i > N-(X_i+1) ): # 上の数が少ない → 下は1回多くする
      M = N-(X_i+1)
      temp_ans = X + N-(X_i+1) +1
      #print("temp_ans =",temp_ans)
      
      for i in range(1,M+1):
        if ( P_set[ X_i -i ] != X-i ):
          print(X-i)
          ans_chk = 1
          break
        elif ( P_set[ X_i +i ] != X+i ):
          print(X+i)
          ans_chk = 1
          break
      
      if ( ans_chk==0 ):
        if ( P_set[ X_i -(M+1) ] != X-(M+1) ):
          print( X-(M+1) )
          ans_chk = 1
  
  
    else: # 下の数が少ないor同数 → そのまま
      M = X_i
      temp_ans = X - X_i -1
      #print("temp_ans =",temp_ans)
    
      for i in range(1,M+1):
        if ( P_set[ X_i -i ] != X-i ):
          print(X-i)
          ans_chk = 1
          break
        elif ( P_set[ X_i +i ] != X+i ):
          print(X+i)
          ans_chk = 1
          break
  
  if ( ans_chk==0 ):
    print(temp_ans)

Buggy submission (verdict: Runtime Error):
# -*- coding: utf-8 -*-

X, N = map(int,input().split())
P = list(map(int,input().split()))

P_set = list(set(P))
#print(P_set)
#print(P_set[1])

ans_chk = 0

if ( X < P_set[0] or X > P_set[N-1] ):
  print(X)
  ans_chk = 1

if ( ans_chk==0 ):
  for i in range(len(P)):
    if ( P_set[i] == X ):
      X_i = i
      break
    elif ( P_set[i] > X ):
      print(X)
      ans_chk = 1
      break

if ( ans_chk==0 ):
  
  if ( X_i >= N-(X_i+1) ): # 上の数が少ない → 下は1回多くする
    M = N-(X_i+1)
    temp_ans = X + N-(X_i+1) +1
    #print("temp_ans =",temp_ans)
    
    for i in range(1,M+1):
      print(i)
      if ( P_set[ X_i -i ] != X-i ):
        print(X-i)
        ans_chk = 1
        break
      elif ( P_set[ X_i +i ] != X+i ):
        print(X+i)
        ans_chk = 1
        break
    
    if ( ans_chk==0 ):
      if ( P_set[ X_i -(M+1) ] != X-(M+1) ):
        print( X-(M+1) )
        ans_chk = 1


  else: # 下の数が少ない → そのまま
    M = X_i
    temp_ans = X - X_i -1
    #print("temp_ans =",temp_ans)
  
    for i in range(1,M+1):
      print(i)
      if ( P_set[ X_i -i ] != X-i ):
        print(X-i)
        ans_chk = 1
        break
      elif ( P_set[ X_i +i ] != X+i ):
        print(X+i)
        ans_chk = 1
        break

if ( ans_chk==0 ):
  print(temp_ans)

Buggy submission (verdict: Runtime Error):
# -*- coding: utf-8 -*-

X, N = map(int,input().split())
P = list(map(int,input().split()))

P_set = list(set(P))
#print(P_set)
#print(P_set[1])

ans_chk = 0

if ( X < P[0] or X > P[N-1] ):
  print(X)
  ans_chk = 1

if ( ans_chk==0 ):
  for i in range(len(P)):
    if ( P_set[i] == X ):
      X_i = i
      break
    elif ( P_set[i] > X ):
      print(X)
      ans_chk = 1
      break

if ( ans_chk==0 ):
  
  if ( X_i >= N-(X_i+1) ):
    M = N-(X_i+1)
    temp_ans = X + N-(X_i+1) +1
  else:
    M = X_i
    temp_ans = X - X_i -1
  
  for i in range(1,M+1):
    if ( P_set[ X_i -i ] != X-i ):
      print(X-i)
      ans_chk = 1
      break
    elif ( P_set[ X_i +i ] != X+i ):
      print(X+i)
      ans_chk = 1
      break

if ( ans_chk==0 ):
  print(temp_ans)