// #include <cstdio>
// using namespace std;
// int main(){
// for(int i = 1; i <= 100; i++){
// int a;
// scanf("%d", &a);
// for(int j = 1; j <= a; j++){
// printf("%d ", j);
// }
// if (a) printf("\n");
// }
// return 0;
// }
#include <iostream>
using namespace std;
int main(){
int a;
//scanf cin 同样会返回一个值当读到值的时候
//scanf("%d", &x) != -1 读到这个符号就意味着结束 EOF 或者 -1 //这行有个等价写法也就是前面加 ~ //while(~scanf("%d", &x) ~位运算 以后讲
while(cin >> a && a){//后端中 所有文件都有一个结束符也就是 EOF / -1 读到这个符号就意味着结束 结束了之后就会返回一个false
//cin 它是有返回值的所以直接写尽判断也可以
// while(cin >> a, a) ,逗号表达式也可以等价
// if(!a) break; && a 与这个写法等价且更方便
for(int i = 1; i <= a; i++) cout << i << ' ';
cout << endl;
}
// int x = 5;
// int cnt = 0;
// if (cnt != 0, x == 5)
// cout << "!" << endl; //输出! 因为if条件判断看的是最后一个表达式的值所以第一个不满足也无所谓
//for循环也有这个特点 for(int i = 0;false, i < 10; i++) 这个false允许存在 只会判断 i < 10
//return 也有这个特点也就是取最后一个条件判断表达式 return x = 6, 0 最后返回的是0
return 0;
// c++里面的EOF 即文件结束是个常量 也就是 -1 可以 cout << EOF << endl
}