public int count(String[] field, int dist) {
		this.field = field;
		boolean[][] checked = new boolean[field.length][field[0].length()];
		int count = 0;
		for (int i = 0; i < field.length; i++) {
			for (int j = 0; j < field[i].length(); j++) {
				if (field[i].charAt(j) == 'v') {
					if (!checked[i][j]) {
						check(checked, i, j, dist);
						count++;
					}
				}
			}
		}
		if (count == 0) {
			return 0;
		}
		int mod = 1000000007;
		int result = 1;
		for (int i = 0; i < count; i++) {
			result = (result * 2) % mod;
		}
		// もしresultが0だったとき-1になるので（数学的にありえるかどうかは不明）
		// なくてもシステムテストには通った！！
		result = (result - 1 + mod) % mod;
		return result;
	}