def get_valid_trials(dataframe):
    """ Remove trials where sliders where not grabbed concurrently or grabbed at all.
    
    :param dataframe: Trial data.
    :type dataframe: pandas.DataFrame
    :returns: Filtered trials. Number of removed trials.
    :rtype: tuple[pandas.DataFrame, int]
    """
    # Remove trials with missing values. This means at least one slider wasn't grabbed.
    df = dataframe.dropna(axis='index', how='any')
    # Remove trials where sliders where not grabbed concurrently.
    mask = ~((df['df1_release'] <= df['df2_grab']) | (df['df2_release'] <= df['df1_grab']))
    df = df.loc[mask, :]
    n_removed = len(dataframe) - len(df)
    return df, n_removed