code: protected static void adjustUpLeft(byte[][] matrix, byte[][] tempMatrix, int maxX, int maxY) {
  		int currentMinX = Integer.MAX_VALUE, currentMinY = Integer.MAX_VALUE;
  		for(int i = 0; i < maxX; i++) {
  			for(int j = 0; j < maxY; j++) {
  				if(matrix[i][j] == 1) {
  					if(i < currentMinX) {
  						currentMinX = i;
  					}
  					if(j < currentMinY) {
  						currentMinY = j;
  					}
  				}
  			}
  		}
  		for(int i = currentMinX; i < maxX; i++) {
  			for(int j = currentMinY; j < maxY; j++) {
  				tempMatrix[i - currentMinX][j - currentMinY] = matrix[i][j];
  			}
  		}
  		for(int i = 0; i < maxX; i++) {
  			for(int j = 0; j < maxY; j++) {
  				matrix[i][j] = tempMatrix[i][j];
  			}
  		}
  	}
docs: This method is used for adjusting the current state to (0, 0) so that we can effectively identify repeated states