#include <iostream>
using namespace std;

const int MAXWIDTH = 10;
const int MAXHEIGHT = 10;

char container[MAXWIDTH][MAXHEIGHT];

int main()
{
	int n, w, b;
	int cols[MAXWIDTH], max;
	int boxTop[MAXWIDTH], boxOffset[MAXWIDTH];

	cin >> n >> w >> b;
	while (n != 0) {
		for(int i=0; i<w; i++)
			cols[i] = 0;
		for(int i=0; i<n; i++) {
			int h;
			cin >> h;
			for(int j=0; j<h; j++) {
				for(int k=0; k<w; k++) {
					cin >> container[j][k];
				}
			}
			for(int k=0; k<w; k++) {
				boxOffset[k] = 0;
				for(int j=0; j<h; j++) {
					if (container[j][k] == 'X')
						break;
					boxOffset[k]++;
				}
				boxTop[k] = h;
				for(int j=h-1; j>=0; j--) {
					if (container[j][k] == 'X')
						break;
					boxTop[k]--;
				}
			}
			int oldMax = max;
			max = cols[0] + boxTop[0];
			for(int k=1; k<w; k++) {
				if (cols[k] + boxTop[k] > max)
					max = cols[k] + boxTop[k];
			}
			if (max > b) {
				cout << oldMax << ' ';
				max = h;
			}
			for(int k=0; k<w; k++) {
				cols[k] = max - boxOffset[k];
			}
		}
		cout << max << endl;

		cin >> n >> w >> b;
	}
return 0;
}
