PAS01 - Panda and sets

Panda likes to play with sets, integers and gcd. gcd 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 si, sj from S, gcd(si, sj) = k

Given k and n, Panda 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 unused). 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 5, 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 gcd(2, 4) = 2 not 1


Added by:SrGrace
Date:2015-05-08
Time limit:0.100s-1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64 JS-MONKEY

hide comments
2015-06-16 01:35:35 Soma
@author : can u check my code i am getting WA? i am sure i am applying correct algorithm but not able to figure out why i am getting WA. code id := 14462138.

@anyone : please provide some more test cases.

Last edit: 2015-07-02 18:25:23
2015-05-20 23:45:11
I also have a feeling that the test cases are incorrect. I would also like to ask the author to please check.
2015-05-14 14:10:49 Pulkit Singhal
Please check that input data is correct or not :(
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.