===== 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)
    dp = [0] * (n + 1)

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

    return dp[n]
```