Snapshot isolation commit
Your task
Under snapshot isolation with first-committer-wins, a transaction must ABORT at commit time if any item it wrote was also written by a transaction that committed during its lifetime (between its start and its commit). Transactions are given as rows [start_ts, commit_ts, write_items] sorted by commit_ts ascending (all commit_ts distinct). Process them in commit order; a transaction commits successfully only if none of its write_items conflict with the write_items of an already-committed transaction whose commit_ts is strictly greater than this transaction's start_ts. Aborted transactions do NOT apply their writes (don't count against later transactions). Return the list of start_ts values of the transactions that successfully COMMIT, in commit order.
Examples
first_committer_wins(txns: list[list]) -> list[int]first_committer_wins([[0, 10, ["x"]], [5, 20, ["x"]]])[0]