#6600. A. 圆数之和

A. 圆数之和

Codeforces Round 640 (Div. 4)


A. 圆数之和

时间限制: 1 秒 内存限制: 256 MB

我们称一个正整数(大于 0)是 ​圆数​,如果它的形式是 (d0)(d\ldots0),即除了最高位(最左边的数字)外,其余所有数字都是 0。

特别地,从 1 到 9 的所有整数都是圆数。

例如,下面这些是圆数:

  • 4000
  • 1
  • 9
  • 800
  • 90

下面这些不是圆数:

  • 110
  • 707
  • 222
  • 1001

问题描述

给定一个正整数(n)((1n104)) (n) ((1 \leq n \leq 10^4))。请把 (n) 表示为若干个圆数之和,要求​加数的个数尽可能少​。

换句话说,你需要用尽量少的圆数相加得到 (n)。


输入

第一行包含一个整数 (t)((1t104))(t) ((1 \leq t \leq 10^4)) —— 测试用例的数量。

接下来每个测试用例包含一行,一个整数 (n)((1n104))(n) ((1 \leq n \leq 10^4))


输出

输出 (t) 组答案。

对于每个测试用例:

  • 首先输出一个整数 (k) —— 表示最少的加数个数;
  • 然后输出 (k) 个圆数,它们的和等于 (n)。

加数可以以任意顺序输出。若有多种方案,输出任意一种即可。


示例

输入

5
5009
7
9876
10000
10

输出

2
5000 9
1
7
4
800 70 6 9000
1
10000
1
10