P1007

#include <bits/stdc++.h>

const int N = 500010, M = N << 1;
int t, n, m;
int deg[N];
bool pass[M];
int head[N], nxt[M << 1], to[M << 1], idx;
int cur[N];
int stk[M], top; 

void add(int u, int v) {
    nxt[idx] = head[u];
    to[idx] = v;
    head[u] = idx;
    ++ idx;
    return;
}
void dfsearch(int x) { 
    for ( ; cur[x] != -1; cur[x] = nxt[cur[x]]) {
        if (pass[cur[x] >> 1]) {
            continue;
        }
        pass[cur[x] >> 1] = true;
        dfsearch(to[cur[x]]);
        if (cur[x] == -1) {
            break;
        }
    }
    ++ top, stk[top] = x;
    return;
}

int main(void) {
    scanf("%d", &t);
    while (t --) {
        scanf("%d%d", &n, &m);

        idx = 0;
        for (int i = 1; i <= n; ++ i) {
            head[i] = -1;
            deg[i] = 0;
        }
        for (int i = 0; i < m; ++ i) {
            pass[i] = false;
        }

        int inpu, inpv;
        for (int i = 1; i <= m; ++ i) {
            scanf("%d%d", &inpu, &inpv);
            add(inpu, inpv);
            add(inpv, inpu);
            ++ deg[inpu], ++ deg[inpv];
        }
        int oddcnt = 0, oddpt1 = -1, oddpt2 = -1;
        for (int i = 1; i <= n; ++ i) {
            if (deg[i] & 1) {
                ++ oddcnt;
                if (oddpt1 == -1) {
                    oddpt1 = i;
                } else if (oddpt2 == -1) {
                    oddpt2 = i;
                }
            }
        }

        if (oddcnt != 0 && oddcnt != 2) {
            puts("No");
        } else {
            for (int i = 1; i <= n; ++ i) {
                cur[i] = head[i];
            }
            if (oddpt1 != -1) {
                dfsearch(oddpt1);
            } else {
                for (int i = 1; i <= n; ++ i) {
                    if (deg[i]) {
                        dfsearch(i);
                        break;
                    }
                }
            }
            if (top != m + 1) {
                puts("No");
            } else {
                puts("Yes");
                printf("%d\n", m + 1);
                for (int i = top; i >= 1; -- i) {
                    printf("%d ", stk[i]);
                }
                puts("");
            }
            top = 0;
        }

    }

    return 0;
}