Point: 100.0
Time limit: 1.0s
Memory limit: 250 M
Input: stdin
Output: stdout
Problem type

An nảy ra một trò chơi tên là LoveNumber.

Luật chơi như sau: - Ban đầu cho 1 số nguyên dương \(a\)

  • An và Bình lần lượt chơi với nhau, mỗi lượt được chọn 1 trong 2 thao tác sau:

    Thao tác 1: Biến đổi \(a\) = \(a * 2\)

    Thao tác 2: Thêm chữ số \(1\) vào bên phải số hiện tại

Sau một lúc biến đổi An và Bình chỉ nhớ được số đâu tiên \(a\) và số cuối cùng \(b\). Tuy nhiên, hai bạn nghi ngờ rằng mình đã nhầm lẫn dâu đó và muốn kiểm tra xem liệu có thể biến đổi từ \(a\) về \(b\) hay không? Bạn hãy giúp An và Bình nhé!

INPUT SPECIFICATION

  • Một dòng chứa 2 số nguyên \(a\)\(b\) \((1 \le a < b \le 10^9)\)

OUTPUT SPECIFICATION

  • Nếu không có cách tạo được số \(b\) từ \(a\), in \(NO\).

  • Trường hợp còn lại in 3 dòng:

  • Dòng đầu tiên in \(YES\).
  • Dòng thứ hai chứa một số nguyên \(k\) — số bước chuyển đổi.
  • Dòng thứ 3 chứa \(k\) số nguyên \(x_1\), \(x_2\), … \(x_k\) thoả mãn:

    \(x_1\) = \(a\)

    \(x_k\) = \(b\)

    \(x_i\) có thể được biến đổi từ \(x_{i-1}\) sử dụng một trong hai quy tắc đã nêu ở trên \((1 < i \le k)\)

SAMPLE INPUT

2 161

SAMPLE OUTPUT

YES
5
2 4 8 16 161