def select_data(df, countries_list, regions_list, ages_list, genders_list):
    """Extracts from the dataset the data corresponding to many criterias.
    Parameters:
    -----------
    df : Pandas DataFrame
       dataset 
    
    countries_list : list of str 
       countries to be selected
    
    regions_list : list of str
       regions to be selected

    ages_list : list of int
       age ranges to be selected
    
    genders_list : list of str
       genders to be selected
    
    Returns:
    -----------
        The corresponding dataset (pandas DataFrame)
    """
    df0 = df[df['Country'].isin(countries_list)]
    df1 = df0[df0['Region'].isin(regions_list)]
    df2 = df1[df1['Age'].isin(ages_list)]
    df3 = df2[df2['Sex'].isin(genders_list)]
        
    return df3