p = 12;
a = 10;
b = 24;
c = 2;
d = 10;

courses = {
        dew100,
        fis100,
        hcw310,
        iwg101,
        mat111,
        mat121,
        dew101,
        fis110,
        iwi131,
        mat112,
        mat122,
        dewxx0,
        fis120,
        hcw311,
        hxwxx1,
        ili142,
        mat113,
        mat123,
        fis130,
        ili134,
        ili151,
        iwm185,
        mat124,
        fis140,
        hxwxx2,
        ile260,
        ili260,
        iwn170,
        qui104,
        ili231,
        ili243,
        ili252,
        ili273,
        mat210,
        mat260,
        ild208,
        ili221,
        ili274,
        ili281,
        iwn270,
        mat270,
        hrw150,
        ili238,
        ili242,
        ili275,
        ili355,
        hrw110,
        ici393,
        ili237,
        ili334,
        ili363,
        iwn261,
        hrw100,
        ici382,
        ili331,
        ili362,
        ili381,
        iln230,
        ici313,
        ici315,
        ici332,
        ici344,
        icn336,
        iwi365,
        ici314,
        ici367
};

credit = [
        1,
        3,
        1,
        2,
        4,
        4,
        1,
        5,
        3,
        4,
        4,
        1,
        4,
        1,
        1,
        4,
        4,
        4,
        4,
        4,
        3,
        3,
        4,
        4,
        1,
        3,
        3,
        3,
        3,
        3,
        4,
        4,
        3,
        4,
        4,
        3,
        4,
        3,
        3,
        3,
        4,
        2,
        4,
        3,
        3,
        4,
        2,
        4,
        4,
        4,
        3,
        3,
        2,
        4,
        4,
        3,
        3,
        3,
        2,
        2,
        3,
        4,
        3,
        3,
        2,
        2
];

prereq = {
        <dew101, dew100>,
        <fis110, fis100>,
        <fis110, mat121>,
        <mat112, mat111>,
        <mat122, mat111>,
        <mat122, mat121>,
        <dewxx0, dew101>,
        <fis120, fis110>,
        <fis120, mat122>,
        <hcw311, hcw310>,
        <ili142, iwi131>,
        <mat113, mat112>,
        <mat113, mat122>,
        <mat123, mat112>,
        <mat123, mat122>,
        <fis130, fis110>,
        <fis130, mat122>,
        <ili134, iwi131>,
        <ili151, mat112>,
        <mat124, mat113>,
        <mat124, mat123>,
        <fis140, fis120>,
        <fis140, fis130>,
        <ile260, fis120>,
        <ile260, mat124>,
        <ili231, iwi131>,
        <ili252, iwi131>,
        <ili273, ili260>,
        <mat210, mat113>,
        <mat260, iwi131>,
        <mat260, mat113>,
        <mat260, mat123>,
        <ili221, ili134>,
        <ili221, ili231>,
        <ili221, mat260>,
        <ili274, ili273>,
        <ili281, mat260>,
        <mat270, iwi131>,
        <mat270, mat113>,
        <mat270, mat123>,
        <ili238, ili134>,
        <ili242, ili142>,
        <ili275, ili274>,
        <ili355, ili221>,
        <hrw110, hrw150>,
        <ici393, mat210>,
        <ici393, mat260>,
        <ili237, ili231>,
        <ili237, ili252>,
        <ili334, ili238>,
        <ili363, ili273>,
        <hrw100, hrw110>,
        <ici382, ili334>,
        <ili331, ili238>,
        <ili331, ili274>,
        <ili362, ili363>,
        <ili381, ili281>,
        <ili381, mat210>,
        <iln230, iwn170>,
        <ici313, ili331>,
        <ici332, ici393>,
        <ici332, ili331>,
        <ici344, ili243>,
        <icn336, ici393>,
        <ici314, ici313>
};