input: from typing import List
  
  def longest_common_subsequence(string1: str, string2: str) -> str:
      """Find the longest common subsequence (LCS) between two strings. The LCS of two strings is the 
      longest sequence of characters (including letters, numbers, and spaces) that appear in the same 
      order in both strings. Subsequences do not have to occupy consecutive positions within the 
      original strings.
      
      >>> longest_common_subsequence("ABCDF", "ABECD")
      'ABCD'
      >>> longest_common_subsequence("AGGTAB", "GXTXAYB")
      'GTAB'
      """
output:     
      m, n = len(string1), len(string2)
      dp = [[""] * (n + 1) for _ in range(m + 1)]
      
      for i in range(1, m + 1):
          for j in range(1, n + 1):
              if string1[i - 1] == string2[j - 1]:
                  dp[i][j] = dp[i - 1][j - 1] + string1[i - 1]
              else:
                  dp[i][j] = max(dp[i - 1][j], dp[i][j - 1], key=len)
      
      return dp[m][n]
  