<p>Given a positive integer, print the next smallest and the next largest number that have the same number of 1 bits in their binary representation.</p>



<p><strong>Example1:</strong></p>



<pre>

<strong> Input</strong>: num = 2 (0b10)

<strong> Output</strong>: [4, 1] ([0b100, 0b1])

</pre>



<p><strong>Example2:</strong></p>



<pre>

<strong> Input</strong>: num = 1

<strong> Output</strong>: [2, -1]

</pre>



<p><strong>Note:</strong></p>



<ol>

	<li><code>1 &lt;= num &lt;=&nbsp;2147483647</code></li>

	<li>If there is no next smallest or next largest number, output -1.</li>

</ol>