input: from typing import List
  from math import inf
  from heapq import nlargest, nsmallest
  
  def min_distance_after_removing_point(points: List[List[int]]) -> int:
      """
      Given an array points containing integer coordinates of points on a 2D plane, where each points[i] = [x_i, y_i].
  
      The Manhattan distance between two points is given. Return the minimum possible maximum distance between any two points after removing exactly one point.
  
      Examples:
      >>> points = [[3,10],[5,15],[10,2],[4,4]]
      12
      >>> points = [[1,1],[1,1],[1,1]]
      0
  
      Constraints:
      3 <= points.length <= 10^5
      points[i].length == 2
      1 <= points[i][0], points[i][1] <= 10^8
      """
output:     def manhattan_distance(p1, p2):
          return abs(p1[0] - p2[0]) + abs(p1[1] - p2[1])
  
      def compute_max_distance_excluding(points, excluded_idx):
          max_distance = -inf
          for i in range(len(points)):
              if i != excluded_idx:
                  for j in range(i + 1, len(points)):
                      if j != excluded_idx:
                          max_distance = max(max_distance, manhattan_distance(points[i], points[j]))
          return max_distance
  
      if len(points) <= 3:
          return 0
  
      max_distances = []
      for i in range(len(points)):
          max_distances.append(compute_max_distance_excluding(points, i))
  
      return min(max_distances)