import java.lang.reflect.Array; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.stream.IntStream; //TIP To Run code, press or // click the icon in the gutter. public class Snow { public static int evaluate(int n, int m, List> snow) { int count = 0; for (int j = 0; j < m; ++j){ int i = n - 1; while ((snow.get(i).get(j) != '.') && (i >= 0)){ ++count; --i; } } return count; } public static void move(int n, int m, List> snow){ for (int i = n-2; i >= 0; --i){ for (int j = 0; j < m; ++j){ if (snow.get(i+1).get(j) == '.'){ snow.get(i+1).set(j, snow.get(i).get(j)); snow.get(i).set(j, '.'); } } } } public static void main(String[] args) { int n, m, q, measure_id = 0, time = 0; Scanner scan = new Scanner(System.in); String[] firstLine = scan.nextLine().trim().split(" "); n = Integer.parseInt(firstLine[0]); m = Integer.parseInt(firstLine[1]); q = Integer.parseInt(firstLine[2]); List measure = new ArrayList<>(q); List> snow = new ArrayList<>(n); // for(int i = 0; i < n; i++) { // snow.set(i, new ArrayList<>(m)) // } for (int i = 0; i < n; ++i){ char[] line = scan.nextLine().toCharArray(); List ca = new ArrayList<>(m); for (int j = 0; j < m; ++j){ ca.add(line[j]); //ca.set(j, line[j]); } snow.add(ca); //snow.set(i, ca); } for (int i = 0; i < q; ++i){ String line = scan.nextLine().trim(); measure.add(Integer.parseInt(line)); } while (time < n){ if (time == measure.get(measure_id)){ System.out.println(evaluate(n, m, snow)); ++measure_id; } move(n, m, snow); ++time; } int last = evaluate(n, m, snow); while (measure_id != q){ System.out.println(last); ++measure_id; } } }