A ideia é montar uma matriz que representa os conjuntos de tamanho $$$n \times m$$$. As linhas representam cada empresa, e as colunas representam cada usuário. Um valor de célula $$$1$$$ significa que o conjunto referente a aquela linha contém o usuário referente a aquela coluna.
Em seguida, iteramos sobre todos as empresas em ordem. Comparamos essa empresa $$$u$$$ com todas as outras $$$v$$$, verificando se existe alguma empresa $$$v$$$ que é subconjunto da empresa atual ($$$U_v \subseteq U_u$$$). Se existir, precisamos verificar se são iguais, pois se forem, pode, e prevalece aquela de menor índice. Se não forem iguais, essa empresa não pode ser fonte e já é descartada.
Essa solução tem complexidade $$$\mathcal{O}(n^2m)$$$ que passa no tempo limite.