private void optimizeFLangOrNatSc(boolean natSc){
        // ForeignLanguages: 4 hjs mandatory
        // NaturalSciences: 4 hjs mandatory
        // Process is identical
        Subject[] subjectArray;

        if(natSc){subjectArray = natScSubjects;
        } else{subjectArray = fLangSubjects;}

        int hjsToAdd = 4; // 4 is default
        for(Subject thisSubject:subjectArray){
            if(thisSubject.writtenExamSubject){
                hjsToAdd = 0; // A and C already have 4hjs
                break;
            }
            if(thisSubject.oralExamSubject){
                hjsToAdd = 3; // C already has 1 hj
            }
        }

        for(int i=0; i<hjsToAdd; i++){
            Subject bestSubject = OptSearcher.findSubjectOfBestHj(myData, subjectArray);
            Semester bestSemester = OptSearcher.findBestSubjectSemester(bestSubject);
            bScore += bestSemester.mark;
            bestSemester.usedState = Semester.UsedState.mandLegible;
            
            if(bestSemester.mark>=5) failer.add1ToCounter();
        }
        
    }