def update_max_for_sim(m, init_max, max_allowed):
    """
    updates the current maximal number allowed by a factor
    :param m: multiplication factor
    :param init_max: initial maximum chromosome number allowed
    :param max_allowed: previous maximum chromosome number allowed
    :return: the current updated maximum for next iteration
    """
    max_for_sim = 200 * m + init_max
    if max_for_sim < max_allowed:
        max_for_sim = max_allowed
    return max_for_sim