#!/usr/bin/env python3
"""
Python equivalent of bench_fold_append.roc
For comparing Roc interpreter performance against Python
"""

import sys


def generate_digits(n):
    """Generate a list of digits for testing"""
    return [i % 10 for i in range(n)]


def benchmark_fold_append(digits):
    """
    Equivalent to the Roc fold_rev with append pattern
    Build list by appending in reverse iteration
    """
    max_rest = []
    m = 0
    for d in reversed(digits):
        max_rest.append((d, m))  # O(1) amortized
        m = max(d, m)

    # Find maximum two-digit number
    max_val = 0
    for d1, d2 in max_rest[1:]:
        val = 10 * d1 + d2
        max_val = max(val, max_val)

    return max_val


def main():
    size = int(input())

    print("Benchmark 2: fold_rev with Append")
    print("===================================")
    print()

    print(f"Processing {size} digits...")
    digits = generate_digits(size)

    for _ in range(10):
        _ = benchmark_fold_append(digits)

    # Final run
    result = benchmark_fold_append(digits)
    print(f"  Result: {result}")

    print("Benchmark complete!")


if __name__ == "__main__":
    main()
