| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -26,7 +26,6 @@ class School: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    def __init__(self, data: List[str]) -> None: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        self.parse(data) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        self.synchronized_steps = [] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    def flash(self, octopus: Octopus) -> None: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        octopus.energy_level = 0 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -36,21 +35,17 @@ class School: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    def update(self, octopus: Octopus) -> None: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if octopus.last_flash == self.step: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return None | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        octopus.energy_level += 1 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        if octopus.energy_level == 10: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            self.flash(octopus) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    def update_neighbors(self, location: Tuple[int, int]) -> None: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        min_row = 0 if location[0] == 0 else location[0] - 1 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        min_col = 0 if location[1] == 0 else location[1] - 1 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        max_row = ( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            location[0] if location[0] == self.size["rows"] - 1 else location[0] + 1 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        max_col = ( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            location[1] if location[1] == self.size["cols"] - 1 else location[1] + 1 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        min_row = 0 if not location[0] else location[0] - 1 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        min_col = 0 if not location[1] else location[1] - 1 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        max_row = location[0] if location[0] == self.size["rows"] - 1 else location[0] + 1 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        max_col = location[1] if location[1] == self.size["cols"] - 1 else location[1] + 1 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        for row in range(min_row, max_row + 1): | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            for col in range(min_col, max_col + 1): | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -88,9 +83,7 @@ class School: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    self.update(octopus) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if self.is_synchronized(): | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                break | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        return step | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                return step | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    @property | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    def total_flashes(self) -> int: | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |