# High-rise buildings

Difficulty : Very Hard

Community success rate: 37%

Approved by Stilgart eulerscheZahl Oussama_Siharde

A higher resolution is required to access the IDE

- 43

## Statement

## Goal

Given a grid of dimension NxN, you must build towers on each square in such a way that:- The heights of the towers range from 1 to N;

- Each row contains every possible height of tower exactly once;

- Each column contains every possible height of tower exactly once;

- Each numeric clue describes the number of towers that can be seen if you look into the square from that position. Taller towers block your view of shorter towers behind them.

Clues are given in this order North, West, East and South.

a b c 2 1 2

d . . . g 2 . 3 . 2

e . . . h 1 . . . 3

f . . . i 2 . . . 1

j k l 2 3 1

Here we must put a building of height 3 because we can see only one tower from position b.

Input

**Line 1**: One integer

`N`for the size of the grid.

**Line 2**:

`N`integers for the numbers of visible towers from the North, given from left to right.

**Line 3**:

`N`integers for the numbers of visible towers from the West, given from top to bottom.

**Line 4**:

`N`integers for the numbers of visible towers from the East, given from top to bottom.

**Line 5**:

`N`integers for the numbers of visible towers from the South, given from left to right.

**Next**A string containing

`N`lines:`N`digits indicating the heights of the towers (0 means unknown)

Output

Grid with the buildings heights

`N`lines`N`space-separated digitsConstraints

5 ≤

`N`≤ 8Example

Input

5 2 2 4 2 1 3 4 2 1 2 1 2 4 3 2 2 2 1 3 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Output

3 4 1 2 5 1 2 3 5 4 2 5 4 3 1 5 1 2 4 3 4 3 5 1 2

A higher resolution is required to access the IDE