You are given array *a* with *n* elements and the number *m*. Consider some subsequence of *a* and the value of least common multiple (LCM) of its elements. Denote LCM as *l*. Find any longest subsequence of *a* with the value *l* ≤ *m*.

A subsequence of *a* is an array we can get by erasing some elements of *a*. It is allowed to erase zero or all elements.

The LCM of an empty array equals 1.
The first line contains two integers *n* and *m* (1 ≤ *n*, *m* ≤ 10<sup class="upper-index">6</sup>) — the size of the array *a* and the parameter from the problem statement.

The second line contains *n* integers *a*<sub class="lower-index">*i*</sub> (1 ≤ *a*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">9</sup>) — the elements of *a*.
none
7 8
6 2 9 2 7 2 3
6 5
1 2 4 6 7
6 4
2 2 2 3 3 3
2 3
1 2 3
10 50
39 22 60 88 11 65 41 85 65 100
22 2
2 5
100 343
999 284 486 785 176 742 856 415 992 601 600 122 460 214 338 92 627 913 376 835 384 914 335 179 409 957 96 784 531 43 584 206 971 799 592 801 870 978 437 517 466 952 1 327 731 689 816 681 383 969 452 298 114 687 314 436 267 154 827 197 805 207 284 550 351 700 94 567 524 329 414 561 284 666 702 226 793 814 3 133 115 67 981 807 5 471 146 19 349 168 850 623 952 734 836 925 155 580 280 291
114 4
43 53 79 88
1 1
2
1 0
7 1
6 2 9 2 7 2 3
1 0
5 1
5 4 3 2 6
1 0
5 1
5 4 6 2 5
1 0
3 5
5 7 9
5 1
1
2 2
3 5
1 0
2 1
2 2
1 0
1 3
5
1 0
1 2
3
1 0
10 1
2 3 2 4 2 3 4 4 2 3
1 0
5 1
2 3 4 5 6
1 0
3 1
3 3 3
1 0
5 1
4 5 6 7 8
1 0
2 10
14 15
1 0
3 10
11 13 17
1 0
1 1
1024
1 0
1 1
333
1 0
1 5
4321
1 0
1 1
1234
1 0
1 1
2000
1 0
1 1
2222
1 0
1 3
2
2 1
1
4 1
2 3 4 5
1 0
1 1000000
1234
1234 1
1
1 1000000
1
1 1
1
1 6
5
5 1
1
# -*- coding: utf-8 -*-
"""
Created on Sat Apr 16 14:29:14 2016

@author: kebl4230
"""
aa = [int(i) for i in input().split()]
n = aa[0]
m = aa[1]
a = [int(a) for a in input().split()]


def gcd(a, b):
    """Return greatest common divisor using Euclid's Algorithm."""
    while b:
        a, b = b, a % b
    return a


def lcm(a, b):
    """Return lowest common multiple."""
    return a * b // gcd(a, b)

result = ""
x = min(a)
l = 0
for ii in range(n):
    l_tmp = lcm(a[ii], x)
    if l_tmp <= m:
        j = ii
        result += " " + str(ii + 1)
        l = max(l, l_tmp)
print(str(l) + " " + str(j))
print(result)
