Please subscribe to the official Codeforces channel in Telegram via the link: https://t.me/codeforces_official.
×

No tag edit access

D. Dreamoon and Sets

time limit per test

1 secondmemory limit per test

256 megabytesinput

standard inputoutput

standard outputDreamoon likes to play with sets, integers and . is defined as the largest positive integer that divides both *a* and *b*.

Let *S* be a set of exactly four distinct integers greater than 0. Define *S* to be of rank *k* if and only if for all pairs of distinct elements *s*_{i}, *s*_{j} from *S*, .

Given *k* and *n*, Dreamoon wants to make up *n* sets of rank *k* using integers from 1 to *m* such that no integer is used in two different sets (of course you can leave some integers without use). Calculate the minimum *m* that makes it possible and print one possible solution.

Input

The single line of the input contains two space separated integers *n*, *k* (1 ≤ *n* ≤ 10 000, 1 ≤ *k* ≤ 100).

Output

On the first line print a single integer — the minimal possible *m*.

On each of the next *n* lines print four space separated integers representing the *i*-th set.

Neither the order of the sets nor the order of integers within a set is important. If there are multiple possible solutions with minimal *m*, print any one of them.

Examples

Input

1 1

Output

5

1 2 3 5

Input

2 2

Output

22

2 4 6 22

14 18 10 16

Note

For the first example it's easy to see that set {1, 2, 3, 4} isn't a valid set of rank 1 since .

Codeforces (c) Copyright 2010-2018 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Dec/11/2018 22:17:46 (d3).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|