#!/usr/bin/env python3

import argparse
import os


def main() -> None:
    parser = argparse.ArgumentParser()
    parser.add_argument('dirname')
    args = parser.parse_args()

    with open(os.path.join(args.dirname, '1.txt'), 'w') as f:
        f.write('')
    with open(os.path.join(args.dirname, '2.txt'), 'w') as f:
        f.write('')


if __name__ == "__main__":
    main()
