<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def users(self, proc):
 """ Searches for all users running a given command. Returns: dict: each username as a key to a list of PIDs (as strings) that are running the given process. ``{}`` if neither ``USER`` nor ``UID`` is found or ``proc`` is not found. .. note:: 'proc' must match the entire command and arguments. """

        ret = {}
        if self.first_column in ['USER', 'UID']:
            for row in self.data:
                if proc == row[self.command_name]:
                    if row[self.first_column] not in ret:
                        ret[row[self.first_column]] = []
                    ret[row[self.first_column]].append(row["PID"])
        return ret