// Энэ удаад while давталтын тухай орууллаа.
#include <stdio.h>

int main() {
	// Энэ нь мөн байнга ашиглагдах зүйлсийн нэг мөн.
	// Бодлого. Нэг бүхэл тоо өгхөд 1-ээс тэр тоо хүртэл 1 мөрөнд хэвлээд
	// дараагийн мөрөнд тэр тооны цифрүүдийн нийлбэрийг ол.

	/*
		while( нөхцөл ) {
			хэрвээ while-ын хаалтанд байгаа нөхцөл үнэн бол
			{} доторх үйлдлүүд хийгдэнэ.
			эсрэг тохиолдолд давталт зогсоно.
		}
		Ерөнхийдөө нэг ийм.
	*/

	int n, i, s; // хувьсагчдаа зарлаж байна.

	scanf("%d", &n); // Оролтонд өгөх нэг тоогоо уншиж байна.

	i = 1; // бид 1-ээс эхлээд хэвлэх тул i = 1;
	while( i <= n ) {
		// Хэрвээ i гэсэн хувьсагчийн утга n-ээс бага буюу тэнцүү бол бид
		// хэвлэсээр байх болно. Тиймээс бидний нөхцөл бол i <= n
		printf("%d ", i); // i нь нөхцлийг биелүүлж байгаа тул хэвлэнэ.
		
		i += 1; // i = i + 1 гэсэнтэй адил. мөн i++ гэж болно.
		// i-ын утгыг нэгээр нэмэгдүүлнэ. Дараагийн тоог шалгаж үзнэ гэсэн үг юм.
		// бид  i-ын утгыг өөрчлөхгүй бол хязгааргүй давталт болох юм. 
		// Тиймээс нөхцөл болон өөрчлөгдөх утгаа зөв тооцох ёстой.
	}
	printf("\n"); // мөр шилжиж байна.
	s = 0; // одоо цифрүүдийн нийлбэрийг олно. Тэр утгыг s-д хадгалы.
		   // s = 0 гэж өгөхгүй бол бид s хэд гэдгийг хэлж мэдэхгүй.

	while( n > 0 ) {
		// Хэрвээ n тоо тэгээс их бол энэ давталт үргэлжлээд л байна.
		s = s + (n%10); 
		// s нь одоогийн n тооны 10д хуваасан үлдэгдэл буюу сүүлийн цифрээр нэмэгдэнэ.
		
		n /= 10; // n = n/10 гэсэнтэй адил
		// n тооны сүүлийн цифрийг бид нэмсэн тул энэ тооныхоо сүүлийн цифрийг хасах ёстой.
		// тэгхийн тулд энэ тоог 10-д хуваахад хангалттай юм.
	}

	printf("%d\n", s); // хариу болох s-ыг хэвлэнэ.
	return 0;
}