Take one to make one Challenge

Given a list of positive integers, find if there exists a permutation where taking up to one bit from each of the integers, a binary number consisting of all 1s can be created.

The number of bits in the resulting binary number is equal to the highest MSB in the list of integers.

Output

Your code must output or return a truthy/falsey value indicating if such a permutation exists.

Examples

Truthy:

With the list [4, 5, 2], and its binary representation [100, 101, 10], we can use the third, first, and second bits, respectively, to create 111:

4  ->  100  ->  100  ->  1
5  ->  101  ->  101  ->    1
2  ->  010  ->  010  ->   1
Result                   111


With the list [3, 3, 3], all of the numbers have both first and second bits set as 1, so we can take our pick with a number to spare:

3  ->  11  ->  11  ->  1
3  ->  11  ->  11  ->   1
3  ->  11  ->  11  ->
Result                 11


Falsey:

With the list [4, 6, 2], none of the numbers have the first bit set as 1, so the binary number cannot be created:

4  -&gt;  100
6  -&gt;  110
2  -&gt;  010


With the list [1, 7, 1], only one of the numbers has the second and third bits set as 1, and the number cannot be created:

1  -&gt;  001
7  -&gt;  111
1  -&gt;  001


Obviously, if the maximum number of set bits exceeds the number of integers, the result number can never be created.

Test cases

Truthy:

[1]
[1, 2]
[3, 3]
[3, 3, 3]
[4, 5, 2]
[1, 1, 1, 1]
[15, 15, 15, 15]
[52, 114, 61, 19, 73, 54, 83, 29]
[231, 92, 39, 210, 187, 101, 78, 39]


Falsey:

[2]
[2, 2]
[4, 6, 2]
[1, 7, 1]
[15, 15, 15]
[1, 15, 3, 1]
[13, 83, 86, 29, 8, 87, 26, 21]
[154, 19, 141, 28, 27, 6, 18, 137]


Rules

Standard loopholes are forbidden. As this is code-golf, shortest entry wins!
Jelly, 11 bytes

BUT€ŒpṬz0PẸ


Try it online!

How it works

BUT€ŒpṬz0PẸ  Main link. Argument: A (array)

             Example: A = [4, 5, 2]
B            Binary; convert each n in A to base 2.
                      [[1, 0, 0], [1, 0, 1], [1, 0]]
 U           Upend; reverse all arrays of binary digits.
                      [[0, 0, 1], [1, 0, 1], [0, 1]]
  T€         Truth each; for each binary array, get all indices of 1's.
                      [[3], [1, 3], [2]]
    Œp       Take the Cartesian product of all index arrays.
                      [[3, 1, 2], [3, 3, 2]
      Ṭ      Untruth; map each index array to a binary arrays with 1's at
             at the specified indices.
                      [[1, 1, 1], [0, 1, 1]]
       z0    Zip/transpose the resulting 2D array, filling shorter rows with 0's.
                      [[1, 0], [1, 1], [1, 1]]
         P   Take the columnwise product.
                      [1, 0]
          Ẹ  Any; yield 1 if any of the products is non-zero, 0 otherwise.
                      1