from typing import List
from typing import Dict
import csv


def read_input_csv(path: str) -> List[Dict[str, str]]:
    """
    Read the input CSV file and deserialize data.

    :param str path: Path to input CSV file
    :return: List of CSV rows
    :rtype: List[Dict[str, str]]
    """

    transactions = []
    with open(path, 'r') as input_fp:
        input_reader = csv.DictReader(
            input_fp,
            fieldnames=[
                "date",
                "time",
                "amount",
                "type",
                "description"
            ],
            dialect=csv.unix_dialect
        )
        for (idx, row) in enumerate(input_reader):
            if not idx:
                continue
            transactions.append(row)

    transactions.reverse()

    return transactions