import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();

		// 行列Aを取得
		int matrixA[][] = new int[n][m];
		for(int i=0; i<n; i++) {
			for(int j=0; j<m; j++) {
				matrixA[i][j] = sc.nextInt();
			}
		}

		// ベクトルbを取得
		int vectorB[] = new int[m];
		for(int i=0; i<m; i++) {
			vectorB[i] = sc.nextInt();
		}

		sc.close();

		// 計算
		for(int i=0; i<n; i++) {
			int sum = 0;
			for(int j=0; j<m; j++) {
				sum += matrixA[i][j] * vectorB[j];
			}
			System.out.println(sum);
		}
	}

} import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();

		// 行列Aを取得
		int matrixA[][] = new int[n][m];
		for(int i=0; i<n; i++) {
			for(int j=0; j<m; j++) {
				matrixA[i][j] = sc.nextInt();
			}
		}

		// ベクトルbを取得
		int vectorB[] = new int[m];
		for(int i=0; i<m; i++) {
			vectorB[i] = sc.nextInt();
		}

		sc.close();

		// 計算
		for(int i=0; i<n; i++) {
			int sum = 0;
			for(int j=0; j<m; j++) {
				sum += matrixA[i][j] * vectorB[j];
			}
			System.out.println(sum);
		}
	}

} Main public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();

		// 行列Aを取得
		int matrixA[][] = new int[n][m];
		for(int i=0; i<n; i++) {
			for(int j=0; j<m; j++) {
				matrixA[i][j] = sc.nextInt();
			}
		}

		// ベクトルbを取得
		int vectorB[] = new int[m];
		for(int i=0; i<m; i++) {
			vectorB[i] = sc.nextInt();
		}

		sc.close();

		// 計算
		for(int i=0; i<n; i++) {
			int sum = 0;
			for(int j=0; j<m; j++) {
				sum += matrixA[i][j] * vectorB[j];
			}
			System.out.println(sum);
		}
	} main {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();

		// 行列Aを取得
		int matrixA[][] = new int[n][m];
		for(int i=0; i<n; i++) {
			for(int j=0; j<m; j++) {
				matrixA[i][j] = sc.nextInt();
			}
		}

		// ベクトルbを取得
		int vectorB[] = new int[m];
		for(int i=0; i<m; i++) {
			vectorB[i] = sc.nextInt();
		}

		sc.close();

		// 計算
		for(int i=0; i<n; i++) {
			int sum = 0;
			for(int j=0; j<m; j++) {
				sum += matrixA[i][j] * vectorB[j];
			}
			System.out.println(sum);
		}
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc int m = sc.nextInt(); m sc.nextInt() sc.nextInt sc int matrixA[][] = new int[n][m]; matrixA new int[n][m] n m for(int i=0; i<n; i++) {
			for(int j=0; j<m; j++) {
				matrixA[i][j] = sc.nextInt();
			}
		} int i=0; int i=0; i 0 i<n i n i++ i++ i {
			for(int j=0; j<m; j++) {
				matrixA[i][j] = sc.nextInt();
			}
		} {
			for(int j=0; j<m; j++) {
				matrixA[i][j] = sc.nextInt();
			}
		} for(int j=0; j<m; j++) {
				matrixA[i][j] = sc.nextInt();
			} int j=0; int j=0; j 0 j<m j m j++ j++ j {
				matrixA[i][j] = sc.nextInt();
			} {
				matrixA[i][j] = sc.nextInt();
			} matrixA[i][j] = sc.nextInt() matrixA[i][j] matrixA[i] matrixA i j sc.nextInt() sc.nextInt sc int vectorB[] = new int[m]; vectorB new int[m] m for(int i=0; i<m; i++) {
			vectorB[i] = sc.nextInt();
		} int i=0; int i=0; i 0 i<m i m i++ i++ i {
			vectorB[i] = sc.nextInt();
		} {
			vectorB[i] = sc.nextInt();
		} vectorB[i] = sc.nextInt() vectorB[i] vectorB i sc.nextInt() sc.nextInt sc sc.close() sc.close sc for(int i=0; i<n; i++) {
			int sum = 0;
			for(int j=0; j<m; j++) {
				sum += matrixA[i][j] * vectorB[j];
			}
			System.out.println(sum);
		} int i=0; int i=0; i 0 i<n i n i++ i++ i {
			int sum = 0;
			for(int j=0; j<m; j++) {
				sum += matrixA[i][j] * vectorB[j];
			}
			System.out.println(sum);
		} {
			int sum = 0;
			for(int j=0; j<m; j++) {
				sum += matrixA[i][j] * vectorB[j];
			}
			System.out.println(sum);
		} int sum = 0; sum 0 for(int j=0; j<m; j++) {
				sum += matrixA[i][j] * vectorB[j];
			} int j=0; int j=0; j 0 j<m j m j++ j++ j {
				sum += matrixA[i][j] * vectorB[j];
			} {
				sum += matrixA[i][j] * vectorB[j];
			} sum += matrixA[i][j] * vectorB[j] sum matrixA[i][j] * vectorB[j] matrixA[i][j] matrixA[i] matrixA i j vectorB[j] vectorB j System.out.println(sum) System.out.println System.out System System.out sum String[] args args public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();

		// 行列Aを取得
		int matrixA[][] = new int[n][m];
		for(int i=0; i<n; i++) {
			for(int j=0; j<m; j++) {
				matrixA[i][j] = sc.nextInt();
			}
		}

		// ベクトルbを取得
		int vectorB[] = new int[m];
		for(int i=0; i<m; i++) {
			vectorB[i] = sc.nextInt();
		}

		sc.close();

		// 計算
		for(int i=0; i<n; i++) {
			int sum = 0;
			for(int j=0; j<m; j++) {
				sum += matrixA[i][j] * vectorB[j];
			}
			System.out.println(sum);
		}
	}

} public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();

		// 行列Aを取得
		int matrixA[][] = new int[n][m];
		for(int i=0; i<n; i++) {
			for(int j=0; j<m; j++) {
				matrixA[i][j] = sc.nextInt();
			}
		}

		// ベクトルbを取得
		int vectorB[] = new int[m];
		for(int i=0; i<m; i++) {
			vectorB[i] = sc.nextInt();
		}

		sc.close();

		// 計算
		for(int i=0; i<n; i++) {
			int sum = 0;
			for(int j=0; j<m; j++) {
				sum += matrixA[i][j] * vectorB[j];
			}
			System.out.println(sum);
		}
	}

} Main
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();

		// 行列Aを取得
		int matrixA[][] = new int[n][m];
		for(int i=0; i<n; i++) {
			for(int j=0; j<m; j++) {
				matrixA[i][j] = sc.nextInt();
			}
		}

		// ベクトルbを取得
		int vectorB[] = new int[m];
		for(int i=0; i<m; i++) {
			vectorB[i] = sc.nextInt();
		}

		sc.close();

		// 計算
		for(int i=0; i<n; i++) {
			int sum = 0;
			for(int j=0; j<m; j++) {
				sum += matrixA[i][j] * vectorB[j];
			}
			System.out.println(sum);
		}
	}

}
