MAX_N = 100000
MAX_M = 300000

if __name__ == '__main__':
    tmp = input().split(' ')
    n = int(tmp[0])
    m = int(tmp[1])

    assert n >= 1, 'n must be >= 1'
    assert n <= MAX_N, 'n must be <= MAX_N'
    assert m >= 1, 'm must be >= 1'
    assert m <= MAX_M, 'm must be <= MAX_M'

    forward = []
    backward = []

    for i in range(0, m):
        tmp = input().split(' ')
        a = int(tmp[0])
        b = int(tmp[1])
        assert a != b, 'edge {i}: no loops allowed'.format(i = i)
        assert a >= 1, 'edge {i}: a must be >= 1'.format(i = i)
        assert a <= n, 'edge {i}: a must be <= n={n}'.format(i = i, n = n)
        assert b >= 1, 'edge {i}: b must be >= 1'.format(i = i)
        assert b <= n, 'edge {i}: b must be <= n={n}'.format(i = i, n = n)
        if a < b:
            forward.append(i + 1)
        else:
            backward.append(i + 1)

    print('YES')
    if 2 * len(forward) >= m:
        print(len(forward))
        print(' '.join(map(str, forward)))
    else:
        print(len(backward))
        print(' '.join(map(str, backward)))
