Teammates:
    Ian Pan (ip2399)
    Han-Ju Tsai (ht2572)

Instructions:
1. Install necessary packages:
   $ stack install parallel && stack install heap && stack install split

2. Compile the program:
   $ stack ghc -- -threaded --make -Wall -O main.hs -rtsopts

3. Make sure "titles.txt" and the stories archive folder are in the same directory. The file structure is as follows:
    .
    ├── OkapiBM25_utils.hs
    ├── main.hs
    ├── stories
        ├── ...
        ├── ...
        ├── ...
    ├── titles.txt

4. Sample tests and sample outputs
   $ ./main +RTS -A64m -N6 -RTS "./titles.txt"  "Sherlock Holmes" 3 6

    2.6084194s
    ("The Holmes List: A List of Books That Reference or Discuss Sherlock Holmes",12.715927716463458)
    ("The Hound of the Baskervilles, by Sir Arthur Conan Doyle",12.65505881311617)
    ("The Adventure of the Bruce-Partington Plans",12.503400705736151)


   $ ./main +RTS -A64m -N6 -RTS  "./titles.txt"  "Not quite so lazy, the second little pig went in search of planks of seasoned wood" 10 6

     2.6897263s
     ("The Story of the 3 Little Pigs",36.291753040392095)
     ("Aesop's Fables Translated by George Fyler Townsend",25.594030934603182)
     ("The Seven Voyages of Sinbad the Sailor",25.41662823035109)
     ("Interview with the Radar Ranger: A Work of Fiction by D. Railleur",25.295462570877614)
     ("Aesop's Fables (84 of Them) from The PaperLess Readers Club",23.997557350331146)
     ("Gulliver's Travels, by Johnathan Swift (1726)",19.312437366243735)
     ("The Heart of Darkness by Joseph Conrad",18.69324062114874)
     ("The Vigilante",18.43757649046781)
     ("Complete Transcription of Douglas Adams' Life, the Universe and Everything",18.02291176418536)
     ("Complete Transcription of Douglas Adams' Restaurant at the End of the Universe",17.944226365993302)

Footnote:
The testcases above are run on Arch Linux (Kernel: Linux 5.10.60.1-microsoft-standard-WSL2), with 10th Gen Intel i7 6 Cores & 16GB RAM.