|You are playing a game with a NxN grid of letters. The goal of the game is to spell out a N-letter word somewhere on the grid either horizontally from left to right or vertically from top to bottom. To achieve this, you will perform a series of moves. On each move, you can swap either two rows or two columns of the grid.|
You are given a String grid containing the initial state of the grid. The j-th character of the i-th element of grid is the letter at row i, column j. The word you must spell is given to you in the String word. All letters in word are distinct. Note that lowercase and uppercase versions of the same letter are considered different in this problem, so 'A' and 'a' are distinct. Return the minimal number of moves required to spell the given word on the grid, or -1 if it is impossible.
|-||word will contain between 1 and 50 letters ('a'-'z', 'A'-'Z'), inclusive. |
|-||All characters in word will be distinct. |
|-||The number of elements in grid will be equal to the length of word.|
|-||The length of each element of grid will be equal to the length of word.|
|-||Each element of grid will contain only letters ('a'-'z', 'A'-'Z').|