Easy Python Solution
Code
# Code
```python3 []
class Solution:
    def smallestSubarrays(self, nums: List[int]) -> List[int]:
        n = len(nums)
        last_seen = [-1] * 32
        res = [1] * n

        for i in range(n - 1, -1, -1):
            for bit in range(32):
                if nums[i] & (1 << bit):
                    last_seen[bit] = i

            farthest = i
            for bit in range(32):
                if last_seen[bit] != -1:
                    farthest = max(farthest, last_seen[bit])

            res[i] = farthest - i + 1

        return res
```
['Python3']