Buggy python submission (verdict: Time Limit Exceeded):
#初期入力
import sys
N = int(input())
A=[int(i) for i in input().split()]
#

i=0
i_index =0
brick_destroy =0
brick_remain =[]
A_now =A
while i <N:
    i +=1 #探す「文字」
    if i not in A_now:
        break
    else:
        i_index += A_now.index(i)
        brick_remain.append(i_index)
        if i_index >= N-1:
            break
        #print(brick_destroy)
        #print(i,end=" ")
        A_now = A[i_index :] #見つけた字の右側のみ見る

brick_destroy = N - len(brick_remain)
if brick_remain==[]:
    print(-1)
else:
    print(brick_destroy)

Fixed submission:
#初期入力
import sys
N = int(input())
A=[int(i) for i in input().split()]
#


if 1 not in A:
    print(-1)
    exit
else:
    i=1 #探す数字
    brick_remain =set() #「1」は入っていること上記で確かめた
    for a in A:
        if a ==i:
            brick_remain.add(a)
            i +=1
    brick_destroy = N - len(brick_remain)       
    print(brick_destroy)

Buggy python submission (verdict: Runtime Error):
     if i_index >= N-1:
            break
        #print(brick_destroy)
        #print(i,end=" ")
        A_now = A[i_index :] #見つけた字の右側のみ見る

brick_destroy = N - len(brick_remain)
if brick_remain==[]:
    print(-1)
else:
    print(brick_destroy)

Fixed submission:
#初期入力
import sys
N = int(input())
A=[int(i) for i in input().split()]
#


if 1 not in A:
    print(-1)
    exit
else:
    i=1 #探す数字
    brick_remain =set() #「1」は入っていること上記で確かめた
    for a in A:
        if a ==i:
            brick_remain.add(a)
            i +=1
    brick_destroy = N - len(brick_remain)       
    print(brick_destroy)

Buggy python submission (verdict: Time Limit Exceeded):
# 初期入力
N = int(input())
#A = list(map(int, input().split()))
A = list(map(int, input().split()))
#　1の左側は砕く、以降数字が大きくなるほど右側にあればいいが、順番が違うと砕く必要あり。
from copy import deepcopy
x = 0
y =0
z = 0
for i in range(1,N+1):
    if i in A[x:]:
        y = A[x:].index(i ) 
        #z.append(y)
        z +=1
        x += y
        #if y==0:
         #   break

    else:
        y = -1
        break
#
renga_kudaku = 0
if z ==0 and y==-1:
    renga_kudaku = -1
elif z ==0:
    renga_kudaku = 0
else:
    renga_kudaku=N-z # 求める物＝全体ー残る要素数、zは残る文字の配列
print(renga_kudaku)

Fixed submission:
#初期入力
import sys
N = int(input())
A=[int(i) for i in input().split()]
#


if 1 not in A:
    print(-1)
    exit
else:
    i=1 #探す数字
    brick_remain =set() #「1」は入っていること上記で確かめた
    for a in A:
        if a ==i:
            brick_remain.add(a)
            i +=1
    brick_destroy = N - len(brick_remain)       
    print(brick_destroy)

Buggy python submission (verdict: Time Limit Exceeded):
# 初期入力
N = int(input())
#A = list(map(int, input().split()))
A = list(map(int, input().split()))
#　1の左側は砕く、以降数字が大きくなるほど右側にあればいいが、順番が違うと砕く必要あり。
from copy import deepcopy
x = 0
y =0
z = []
for i in range(1,N+1):
    if i in A[x:]:
        y = A[x:].index(i ) 
        z.append(y)
        x += y
        #if y==0:
         #   break

    else:
        y = -1
        break
#
renga_kudaku = 0
if len(z) ==0 and y==-1:
    renga_kudaku = -1
elif len(z) ==0:
    renga_kudaku = 0
else:
    renga_kudaku=N-len(z) # 求める物＝全体ー残る要素数、zは残る文字の配列
print(renga_kudaku)

Fixed submission:
#初期入力
import sys
N = int(input())
A=[int(i) for i in input().split()]
#


if 1 not in A:
    print(-1)
    exit
else:
    i=1 #探す数字
    brick_remain =set() #「1」は入っていること上記で確かめた
    for a in A:
        if a ==i:
            brick_remain.add(a)
            i +=1
    brick_destroy = N - len(brick_remain)       
    print(brick_destroy)

Buggy python submission (verdict: Time Limit Exceeded):
# 初期入力
N = int(input())
#A = list(map(int, input().split()))
A = list(map(int, input().split()))

#　1の左側は砕く、以降数字が大きくなるほど右側にあればいいが、順番が違うと砕く必要あり。
from copy import deepcopy
#B =deepcopy(A)
#B = "".join(A)
x = 0
y =0
z = []
for i in range(1,N+1):
    if i in A:
        y = A.index(i ) 
        z.append(y)
        x = y
        del A[:x] 
    else:
        y = -1
        break
#
renga_kudaku = 0
if len(z) ==0 and y==-1:
    renga_kudaku = -1
elif len(z) ==0:
    renga_kudaku = 0
else:
    renga_kudaku=sum(z)-len(z) +1 +(len(A)-1) # 1の左側はリストの「０」あるので＋１、len(B)-1=最後の「B]の右側の文字数
print(renga_kudaku)

Fixed submission:
#初期入力
import sys
N = int(input())
A=[int(i) for i in input().split()]
#


if 1 not in A:
    print(-1)
    exit
else:
    i=1 #探す数字
    brick_remain =set() #「1」は入っていること上記で確かめた
    for a in A:
        if a ==i:
            brick_remain.add(a)
            i +=1
    brick_destroy = N - len(brick_remain)       
    print(brick_destroy)

Buggy python submission (verdict: Time Limit Exceeded):
# 初期入力
N = int(input())
#A = list(map(int, input().split()))
A = list(map(str, input().split()))

#　1の左側は砕く、以降数字が大きくなるほど右側にあればいいが、順番が違うと砕く必要あり。
from copy import deepcopy
#B =deepcopy(A)
B = "".join(A)
x = 0
y =0
z = []
for i in range(1,N+1):
    y = B.find(str(i) ) 
    if y ==-1:
        break
    else:
        z.append(y)
        x = y
        B_list =[i for i in B] # 文字を消すために文字→リスト
        del B_list[:x] 
        B ="".join(B_list) # 再度リスト→文字（・・・悲しい作業）

#
renga_kudaku = 0
if len(z) ==0 and y==-1:
    renga_kudaku = -1
elif len(z) ==0:
    renga_kudaku = 0
else:
    renga_kudaku=sum(z)-len(z) +1 +(len(B)-1) # 1の左側はリストの「０」あるので＋１、len(B)-1=最後の「B]の右側の文字数
print(renga_kudaku)

Fixed submission:
#初期入力
import sys
N = int(input())
A=[int(i) for i in input().split()]
#


if 1 not in A:
    print(-1)
    exit
else:
    i=1 #探す数字
    brick_remain =set() #「1」は入っていること上記で確かめた
    for a in A:
        if a ==i:
            brick_remain.add(a)
            i +=1
    brick_destroy = N - len(brick_remain)       
    print(brick_destroy)