text: """
  JCS Problem Statement: Given two sequences, find the length of longest sub sequence present in both of them.
  A sub sequence is a sequence that appears in the same relative order, but not necessarily continuous.
  Example:”ab”, “ab” are sub sequences of “abcdefgh”.
  """
  from __future__ import print_function
  
  try:
      xrange          # Python 2
  except NameError:
      xrange = range  # Python 3
  
  
  def lcs_dp(x, y):
      # find the length of strings
      m = len(x)
      n = len(y)
  
      # declaring the array for storing the dp values
      L = [[None] * (n + 1) for i in xrange(m + 1)]
      seq = []
  
      for i in range(m + 1):
          for j in range(n + 1):
              if i == 0 or j == 0:
                  L[i][j] = 0
              elif x[i - 1] == y[j - 1]:
                  L[i][j] = L[i - 1][j - 1] + 1
                  seq.append(x[i - 1])
              else:
                  L[i][j] = max(L[i - 1][j], L[i][j - 1])
      # L[m][n] contains the length of LCS of X[0..n-1] & Y[0..m-1]
      return L[m][n], seq
  
  
  if __name__ == '__main__':
      x = 'AGGTAB'
      y = 'GXTXAYB'
      print(lcs_dp(x, y))
  