p = 12;
a = 20;
b = 35;
c = 1;
d = 8;

courses = {
        iwi131, mat060, mat070, fis100, iwg101, dew100, hw1,
        qui010, mat061, mat071, fis110, dew101, hw2,
        mat023, fis120, iwc203, dew0, hw3, hcw100,
        eli110, mat024, fis130, iwm151, hwr104, hcw101,
        eli211, mat270, mat031, iwm255, hwr131,
        eli212, eli216, eli215, eli214, hw6,
        eli220, eli217, elo270, iwm210, hw7, pri,
        eli221, eli246, fis140, iwm220, iln270,
        eli360, eli347, eli319, eli326, iln271,
        eli327, eli348, eli328, eli361, iwn270,
        eli376, eli349, eli329, icn336, iwn261,
        inf281, prp, eli350, eli390, eli378, icn323
};

credit = [
        5, 5, 5, 6, 3, 2, 3,
        5, 5, 6, 8, 2, 3,
        7, 7, 5, 2, 3, 2,
        7, 6, 5, 5, 3, 3,
        7, 7, 5, 5, 3,
        7, 7, 7, 7, 3,
        7, 7, 7, 7, 3, 0,
        5, 7, 8, 7, 5,
        5, 7, 7, 7, 5,
        5, 7, 7, 5, 5,
        5, 5, 5, 5, 5,
        5, 0, 5, 13, 7, 5
];

prereq = {
        <mat061, mat060>,
        <mat071, mat070>,
        <fis110, fis100>,
        <fis110, mat060>,
        <fis110, mat070>,
        <dew101, dew100>,
        <mat023, mat061>,
        <mat023, mat071>,
        <fis120, fis110>,
        <fis120, mat061>,
        <fis120, mat071>,
        <iwc203, fis110>,
        <iwc203, qui010>,
        <dew0, dew101>,
        <eli110, fis110>,
        <eli110, mat061>,
        <eli110, mat071>,
        <mat024, mat023>,
        <fis130, fis110>,
        <iwm151, fis110>,
        <hcw101, hcw100>,
        <eli211, eli110>,
        <mat270, mat024>,
        <mat031, mat023>,
        <iwm255, iwm151>,
        <eli212, eli110>,
        <eli212, mat023>,
        <eli216, mat024>,
        <eli216, eli211>,
        <eli215, fis120>,
        <eli215, eli110>,
        <eli215, mat024>,
        <eli214, fis120>,
        <eli214, eli211>,
        <eli220, eli211>,
        <eli220, eli215>,
        <eli217, eli216>,
        <elo270, eli212>,
        <iwm210, fis120>,
        <iwm210, mat024>,
        <pri, eli214>,
        <pri, eli212>,
        <pri, eli215>,
        <pri, eli216>,
        <eli221, eli214>,
        <eli221, eli220>,
        <eli246, eli211>,
        <eli246, fis120>,
        <fis140, fis130>,
        <fis140, fis120>,
        <iwm220, iwm210>,
        <iln270, mat023>,
        <eli360, eli212>,
        <eli360, eli246>,
        <eli347, eli246>,
        <eli347, eli220>,
        <eli319, eli216>,
        <eli326, eli220>,
        <eli326, eli212>,
        <iln271, iln270>,
        <eli327, eli221>,
        <eli327, eli326>,
        <eli348, eli246>,
        <eli348, eli211>,
        <eli348, elo270>,
        <eli348, pri>,
        <eli328, elo270>,
        <eli328, eli326>,
        <eli328, eli319>,
        <eli361, eli360>,
        <iwn270, iln270>,
        <eli376, eli327>,
        <eli376, eli348>,
        <eli376, eli328>,
        <eli376, eli361>,
        <eli349, eli348>,
        <eli329, eli328>,
        <icn336, iwn270>,
        <inf281, mat061>,
        <inf281, mat071>,
        <inf281, iwi131>,
        <prp, pri>,
        <prp, eli360>,
        <prp, eli347>,
        <prp, eli319>,
        <eli350, eli349>,
        <eli390, eli376>,
        <eli390, icn336>,
        <eli390, eli349>,
        <eli390, prp>,
        <eli378, icn336>,
        <eli378, eli349>,
        <icn323, iwn261>
};