===== 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:
    n, m = len(text1), len(text2)
    if n == 0 or m == 0:
        return 0
    dp = [0] * (m + 1)
    for i in range(1, n + 1):
        prev = 0
        for j in range(1, m + 1):
            temp = dp[j]
            if text1[i - 1] == text2[j - 1]:
                dp[j] = prev + 1
            else:
                if dp[j] < dp[j - 1]:
                    dp[j] = dp[j - 1]
            prev = temp
    return dp[m]
```