===== ISTEM =====
Solve the following programming task.

TASK: Longest Common Subsequence

Write a function 'longest_common_subsequence(text1, text2)' that computes the length of the longest common subsequence (LCS) of the two given strings.

STARTER CODE (python):
def longest_common_subsequence(text1: str, text2: str) -> int:
    # Write your code here
    pass


RULES:
- Keep the function name and signature EXACTLY as given.
- Return working code only. No explanations.
- Put the code in a single ``` block.
- Try to solve it first. If you genuinely cannot, write only this single
  line instead of producing faulty code: CANNOT_SOLVE

===== HAM YANIT =====
```python
def longest_common_subsequence(text1: str, text2: str) -> int:
    m, n = len(text1), len(text2)
    if m < n:
        text1, text2 = text2, text1
        m, n = n, m

    dp = [0] * (n + 1)
    for c1 in text1:
        prev = 0
        for j, c2 in enumerate(text2):
            temp = dp[j + 1]
            if c1 == c2:
                dp[j + 1] = prev + 1
            else:
                dp[j + 1] = max(dp[j + 1], dp[j])
            prev = temp

    return dp[n]
```