#include <iostream>
#include <vector>

using namespace std;

vector<int> sol;
vector<vector<int>> rows;
vector<vector<int>> p;

int n, m, s, e;

int INTMAX = 0x7FFFFFFF;

static vector<int> Finder(int index, vector<int>& come)
{
	vector<int> lsol;
	int lmin = INTMAX;
	int ideal = -1;
	vector<int> ccopy = come;
	for (int rIndex : p[index])
	{
		auto it = find(come.begin(), come.end(), rIndex);
		if (it != come.end()) continue;
		int size = rows[rIndex].size();
		for (int i = 0; i < size; i++)
		{
			int val = rows[rIndex][i];
			if (val == e)
			{
				return vector<int> { rIndex + 1 };
			}
		}
		vector<int> csol;

		for (int i = 0; i < size; i++)
		{
			int val = rows[rIndex][i];
			if (val == index) continue;

			ccopy.push_back(rIndex);

			csol = Finder(val, ccopy);

			ccopy.pop_back();

			int size = csol.size();
			if (size < lmin)
			{
				ideal = rIndex;
				lsol = csol;
			}
		}
	}
	lsol.insert(lsol.begin(), ideal + 1);
	return lsol;
}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	cin >> n >> m >> s >> e;

	s--;
	e--;

	for (int i = 0; i < m; i++)
	{
		p.push_back(vector<int>{});
	}

	for (int i = 0; i < n; i++)
	{
		rows.push_back(vector<int>{});
		int x;
		cin >> x;
		for (int j = 0; j < x; j++)
		{
			int y;
			cin >> y;
			y--;
			rows[i].push_back(y);
			p[y].push_back(i);
		}
	}
	vector<int> a{};

	sol = Finder(s, a);

	if (sol.size() == 0)
	{
		cout << -1;
	}
	else
	{
		cout << sol.size() << endl;
		for (int x : sol)
		{
			cout << x << " ";
		}
	}
}
Compilation error
open /var/local/lib/isolate/406/box/a.out: no such file or directory
main.cpp: In function 'std::vector<int> Finder(int, std::vector<int>&)':
main.cpp:22:31: error: no matching function for call to 'find(std::vector<int>::iterator, std::vector<int>::iterator, int&)'
   22 |                 auto it = find(come.begin(), come.end(), rIndex);
      |                           ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/12/bits/locale_facets.h:48,
                 from /usr/include/c++/12/bits/basic_ios.h:37,
                 from /usr/include/c++/12/ios:44,
                 from /usr/include/c++/12/ostream:38,
                 from /usr/include/c++/12/iostream:39,
                 from main.cpp:1:
/usr/include/c++/12/bits/streambuf_iterator.h:434:5: note: candidate: 'template<class _CharT2> typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT> >::__type std::find(istreambuf_iterator<_CharT>, istreambuf_iterator<_CharT>, const _CharT2&)'
  434 |     find(istreambuf_iterator<_CharT> __first,
      |     ^~~~
/usr/include/c++/12/bits/streambuf_iterator.h:434:5: note:   template argument deduction/substitution failed:
main.cpp:22:31: note:   '__gnu_cxx::__normal_iterator<int*, std::vector<int> >' is not derived from 'std::istreambuf_iterator<_CharT>'
   22 |                 auto it = find(come.begin(), come.end(), rIndex);
      |                           ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~