You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed. All houses at this place are arranged in a circle. That means the first house is the neighbor of the last one. Meanwhile, adjacent houses have a security system connected, and it will automatically contact the police if two adjacent houses were broken into on the same night.
Given an integer array `nums` representing the amount of money of each house, return the maximum amount of money you can rob tonight without alerting the police.
### Constraints
- `1 <= nums.length <= 100`
- `0 <= nums[i] <= 1000`
### Input Format
A single line containing space-separated integers representing `nums`.
### Output Format
Print the maximum amount of money you can rob.
Sample Cases
Example 1Sample Case
Input: 2 3 2
Output: 3
Example 2Sample Case
Input: 1 2 3 1
Output: 4
Example 3Sample Case
Input: 2
Output: 2
Example 4Sample Case
Input: 2 2
Output: 2
Constraints
Runtime Limit: 2000 ms per test batch
Memory Limit: 256 MB
Standard I/O stream reading
Official submissions are evaluated against hidden test cases on the server to verify time & memory complexity.