import System;
import System.IO;

var args : String[] = Environment.GetCommandLineArgs();
if(args.length == 1)
	getDirectorySize(new DirectoryInfo("."));
else {
	for(var i = 1; i < args.length; i++) {
		var dir : DirectoryInfo = new DirectoryInfo(args[i]);
		if(!dir.Exists)
			System.Console.Error.WriteLine(args[i] + " : not found.");
		else
			getDirectorySize(dir);
	}
}

function getDirectorySize(d : DirectoryInfo) : long {
	var size : long = 0;
	var ds : DirectoryInfo[] = d.GetDirectories();
	for(var i = 0; i < ds.length; i++)
		size += getDirectorySize(ds[i]);
	var fs : FileInfo[] = d.GetFiles();
	for(i = 0; i < fs.length; i++)
		size += fs[i].Length;
	System.Console.WriteLine("{0,8:D}kB {1}", long(size / 1024), d.FullName);
	return size;
}
