One day *n* cells of some array decided to play the following game. Initially each cell contains a number which is equal to it's ordinal number (starting from 1). Also each cell determined it's favourite number. On it's move *i*-th cell can exchange it's value with the value of some other *j*-th cell, if |*i* - *j*| = *d*<sub class="lower-index">*i*</sub>, where *d*<sub class="lower-index">*i*</sub> is a favourite number of *i*-th cell. Cells make moves in any order, the number of moves is unlimited.

The favourite number of each cell will be given to you. You will also be given a permutation of numbers from 1 to *n*. You are to determine whether the game could move to this state.
The first line contains positive integer *n* (1 ≤ *n* ≤ 100) — the number of cells in the array. The second line contains *n* distinct integers from 1 to *n* — permutation. The last line contains *n* integers from 1 to *n* — favourite numbers of the cells.
def bfs(node,target):

    visited[node]=1
    queue=[node]

    while queue:

        a=queue.pop(0)

        for j in adj[a]:
            if visited[j]==0:
                queue.append(j)
                visited[j]=1
                if j==target:
                    return 1
    return 0

import sys

input = sys.stdin.readline


n= int(input())

t = list(map(int,input().split()))

s=  list(map(int,input().split()))



adj=[set() for i in range(n+1)]


for j in range(1,n+1):

    u=s[j-1]

    a=(j-u)
    b=j+u

    if 1<=a<=n:
        adj[j].add(a)
        adj[a].add(j)

    if 1<=b<=n:
        adj[j].add(b)
        adj[b].add(j)


h=0
for i in range(n):

    visited=[0]*(n+1)

    if i+1==t[i]:
        continue
    else:
        a=bfs(i+1,t[i])


  
    if a==0:
        print('NO')
        h+=1
        break

if h==0:
    print('YES')


