import sys input = sys.stdin.buffer.readline sys.setrecursionlimit(10 ** 7) H, W, N = map(int, input().split()) X = [-1] * N Y = [-1] * N row = [[] for _ in range(H+1)] col = [[] for _ in range(W+1)] for i in range(N): X[i], Y[i] = map(int, input().split()) row[X[i]].append(i) col[Y[i]].append(i) v0 = [0] * N v1 = [0] * N pos = [X, Y] G = [row, col] vis = [v0, v1] tour = [] def dfs(s, F, p=-1): vis[F][s] = 1 tour.append(s + 1) for t in G[F][pos[F][s]]: if t == p or t == s: continue if vis[1-F][t]: tour.append(t + 1) return True if dfs(t, 1-F, s): return True tour.pop() return False for i in range(N): if vis[0][i]: continue tour = [] if dfs(i, 0): tour.reverse() last = tour.pop() idx = tour.index(last) print(len(tour) - idx) print(*tour[idx:]) exit() print(-1)