write a go solution for Description: You are given an array a consisting of n distinct positive integers. Let's consider an infinite integer set S which contains all integers x that satisfy at least one of the following conditions: 1. x=a_i for some 1<=qi<=qn. 2. x=2y+1 and y is in S. 3. x=4y and y is in S. For example, if a=[1,2] then the 10 smallest elements in S will be 1,2,3,4,5,7,8,9,11,12. Find the number of elements in S that are strictly smaller than 2^p. Since this number may be too large, print it modulo 10^9+7. Input Format: The first line contains two integers n and p (1<=n,p<=2*10^5). The second line contains n integers a_1,a_2,ldots,a_n (1<=a_i<=10^9). It is guaranteed that all the numbers in a are distinct. Output Format: Print a single integer, the number of elements in S that are strictly smaller than 2^p. Remember to print it modulo 10^9+7. Note: In the first example, the elements smaller than 2^4 are 1,3,4,6,7,9,12,13,15. In the second example, the elements smaller than 2^7 are 5,11,20,23,39,41,44,47,79,80,83,89,92,95.. Output only the code with no comments, explanation, or additional text.