请编写一个程序，该程序接受两个字符串作为输入，然后返回它们的最长公共子序列。
请提供两个字符串，这将是计算它们的最长公共子序列所需的输入。
下面是一个 Python 代码示例，用于找到两个字符串的最长公共子序列：

```python
def find_longest_common_subsequence(str1, str2):
    m = len(str1)
    n = len(str2)
    # 创建二维列表来存储中间结果
    # dp[i][j] 表示 str1 的前 i 个字符和 str2 的前 j 个字符的最长公共子序列的长度
    dp = [[0] * (n + 1) for _ in range(m + 1)]
    # 从左上角开始，递归地构建 dp 表
    for i in range(1, m + 1):
        for j in range(1, n + 1):
            if str1[i - 1] == str2[j - 1]:
                dp[i][j] = dp[i - 1][j - 1] + 1
            else:
                dp[i][j] = max(dp[i - 1][j], dp[i][j - 1])
    # 恢复最长公共子序列
    i, j = m, n
    lcs = ''
    while i > 0 and j > 0:
        if str1[i - 1] == str2[j - 1]:
            lcs = str1[i - 1] + lcs
            i -= 1
            j -= 1
        elif dp[i - 1][j] >= dp[i][j - 1]:
            i -= 1
        else:
            j -= 1
    return lcs
```

要使用该程序，请提供两个字符串（例如，'ABCDGH' 和 'AEDFHR'），然后通过调用 `find_longest_common_subsequence` 函数来计算它们的最长公共子序列。