You've got a undirected graph *G*, consisting of *n* nodes. We will consider the nodes of the graph indexed by integers from 1 to *n*. We know that each node of graph *G* is connected by edges with at least *k* other nodes of this graph. Your task is to find in the given graph a simple cycle of length of at least *k* + 1.

A simple cycle of length *d* (*d* &gt; 1) in graph *G* is a sequence of distinct graph nodes *v*<sub class="lower-index">1</sub>, *v*<sub class="lower-index">2</sub>, ..., *v*<sub class="lower-index">*d*</sub> such, that nodes *v*<sub class="lower-index">1</sub> and *v*<sub class="lower-index">*d*</sub> are connected by an edge of the graph, also for any integer *i* (1 ≤ *i* &lt; *d*) nodes *v*<sub class="lower-index">*i*</sub> and *v*<sub class="lower-index">*i* + 1</sub> are connected by an edge of the graph.
The first line contains three integers *n*, *m*, *k* (3 ≤ *n*, *m* ≤ 10<sup class="upper-index">5</sup>; 2 ≤ *k* ≤ *n* - 1) — the number of the nodes of the graph, the number of the graph's edges and the lower limit on the degree of the graph node. Next *m* lines contain pairs of integers. The *i*-th line contains integers *a*<sub class="lower-index">*i*</sub>, *b*<sub class="lower-index">*i*</sub> (1 ≤ *a*<sub class="lower-index">*i*</sub>, *b*<sub class="lower-index">*i*</sub> ≤ *n*; *a*<sub class="lower-index">*i*</sub> ≠ *b*<sub class="lower-index">*i*</sub>) — the indexes of the graph nodes that are connected by the *i*-th edge. 

It is guaranteed that the given graph doesn't contain any multiple edges or self-loops. It is guaranteed that each node of the graph is connected by the edges with at least *k* other nodes of the graph.
f=200001;v=[0]*f;g=[[]for _ in[0]*f];s=[1];n,m,k=map(int,input().split())
for _ in range(m):a,b=map(int,input().split());g[b]+=a,;g[a]+=b,
while 1:
    v[s[-1]]=1
    for i in g[s[-1]]:
        if v[i]<1:s+=i,;break
    else:
        t=set(g[s[-1]])
        for i in range(len(s)):
            if s[i]in t:exit(print(len(s)-i,*s[i:]))