<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def submit_structures(self, structures, authors, projects=None, references='', remarks=None, data=None, histories=None, created_at=None):
 """ Submits a list of structures to the Materials Project as SNL files. The argument list mirrors the arguments for the StructureNL object, except that a list of structures with the same metadata is used as an input. .. note:: As of now, this MP REST feature is open only to a select group of users. Opening up submissions to all users is being planned for the future. Args: structures: A list of Structure objects authors (list):
 List of {"name":'', "email":''} dicts, *list* of Strings as 'John Doe <johndoe@gmail.com>', or a single String with commas separating authors projects ([str]):
 List of Strings ['Project A', 'Project B']. This applies to all structures. references (str):
 A String in BibTeX format. Again, this applies to all structures. remarks ([str]):
 List of Strings ['Remark A', 'Remark B'] data ([dict]):
 A list of free form dict. Namespaced at the root level with an underscore, e.g. {"_materialsproject":<custom data>}. The length of data should be the same as the list of structures if not None. histories: List of list of dicts - [[{'name':'', 'url':'', same as the list of structures if not None. created_at (datetime):
 A datetime object Returns: A list of inserted submission ids. """

        from pymatgen.util.provenance import StructureNL
        snl_list = StructureNL.from_structures(structures, authors, projects,
                                               references, remarks, data,
                                               histories, created_at)
        self.submit_snl(snl_list)