<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def extract_leftmost_selector(selector_list):
 """ Because we aren't building a DOM tree to transverse, the only way to get the most general selectors is to take the leftmost. For example with `div.outer div.inner`, we can't tell if `div.inner` has been used in context without building a tree. """

    classes = set()
    ids = set()
    elements = set()
    #    print "Selector list: %s \n\n\n\n\n\n" % selector_list
    for selector in selector_list:
        selector = selector.split()[0]
        if selector[0] == '.':
            classes.add(selector)
        elif selector[0] == '#':
            ids.add(selector)
        else:
            elements.add(selector)
    return { 
             'classes':classes,
             'ids':ids,
             'elements':elements,
             }