Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ACM-ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

No tag edit access

B. Painting Pebbles

time limit per test

1 secondmemory limit per test

256 megabytesinput

standard inputoutput

standard outputThere are *n* piles of pebbles on the table, the *i*-th pile contains *a*_{i} pebbles. Your task is to paint each pebble using one of the *k* given colors so that for each color *c* and any two piles *i* and *j* the difference between the number of pebbles of color *c* in pile *i* and number of pebbles of color *c* in pile *j* is at most one.

In other words, let's say that *b*_{i, c} is the number of pebbles of color *c* in the *i*-th pile. Then for any 1 ≤ *c* ≤ *k*, 1 ≤ *i*, *j* ≤ *n* the following condition must be satisfied |*b*_{i, c} - *b*_{j, c}| ≤ 1. It isn't necessary to use all *k* colors: if color *c* hasn't been used in pile *i*, then *b*_{i, c} is considered to be zero.

Input

The first line of the input contains positive integers *n* and *k* (1 ≤ *n*, *k* ≤ 100), separated by a space — the number of piles and the number of colors respectively.

The second line contains *n* positive integers *a*_{1}, *a*_{2}, ..., *a*_{n} (1 ≤ *a*_{i} ≤ 100) denoting number of pebbles in each of the piles.

Output

If there is no way to paint the pebbles satisfying the given condition, output "NO" (without quotes) .

Otherwise in the first line output "YES" (without quotes). Then *n* lines should follow, the *i*-th of them should contain *a*_{i} space-separated integers. *j*-th (1 ≤ *j* ≤ *a*_{i}) of these integers should be equal to the color of the *j*-th pebble in the *i*-th pile. If there are several possible answers, you may output any of them.

Examples

Input

4 4

1 2 3 4

Output

YES

1

1 4

1 2 4

1 2 3 4

Input

5 2

3 2 4 1 3

Output

NO

Input

5 4

3 2 4 3 5

Output

YES

1 2 3

1 3

1 2 3 4

1 3 4

1 1 2 3 4

Codeforces (c) Copyright 2010-2017 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Mar/26/2017 12:11:20 (c4).

Desktop version, switch to mobile version.
User lists

Name |
---|