
The Buttons

Walking down the corridor further, you’ve been taken aback by the fact that it’s becoming narrower and the ceiling is getting lower. But it didn’t last long, because soon you’ve hit the dead end in a form of a bare wall, not in any way suggesting the it’s possible to go further. Some kind of figures on the ceiling made you wonder. Maybe there is a way to interact with them?..
There were buttons on the ceiling in the form of geometrical figures with written numbers on them. Your task is to press them in the correct order - starting from the most "valuable" and finishing with the least "valuable" one. The figure’s value corresponds with the sum of all the numbers on it. A separate geometrical figure is the one whose elements are directly connected to one another (horizontally or vertically). Your function should return a list where the values of all figures will be listed in the order in which they should be pressed. 0 is a symbol for separating the individual figures. If several figures have the same value, they can be pressed in any order.

Input: ceiling with numbers as the multiline string.
Output: right order of the buttons.
Example:
buttons(''' 001203 023001 100220''') == [8, 4, 4, 1]
How it is used: For the graphical analisys.
Precondition
:
1 <= the number of buttons <= 10