You are implementing a board game called "Place and Topple" on an N x N grid (3 ≤ N ≤ 9). Each cell starts at 0. A list of moves is given as (row, col) strings. For every move you first increment the chosen cell by 1. After each increment you must stabilize the board: any cell whose value becomes ≥ 4 topples once, immediately subtracting 4 from itself and distributing +1 to each of its four orthogonal neighbours (if the neighbour is inside the grid). A single placement can trigger a cascade of topples; you must process them in BFS order until every cell is < 4. When the entire sequence of moves finishes you must determine the final state of the board and also decide the winner: if any move leaves the board with every cell > 0 the current player wins instantly and the game ends; otherwise, after the last move, the player who made the last move wins only if the board is completely filled with positive values. Return the final board as a 2-D list of ints and the winner string "Player 1" or "Player 2"; if the board is not full and no instant-win occurred, return the board and "Tie".