Answer matching/comparisons

From Math

Jump to: navigation, search

id.Rout
log
> # Global Environment: idfuns.RData compare.RData
> 
> # Scripts: id.R
> 
> # Default version
> print(top(mf))
      right wrong   i   j score iname jname
23701    25    14 155 123    53  Bill   123
21788    18    16 172 113    50   172   113
21937    30     9 128 114    48   128   114
33373    32     7 177 173    46   177   173
1771     28     8  34  10    44    34    10
6519     26     8 150  34    42   150    34
> 
> # The version I used to pick my four (turns out the default picks the same four in a different order)
> print(top(mf, wrongWeight=10/7, num=4))
      right wrong   i   j    score iname jname
23701    25    14 155 123 45.00000  Bill   123
21937    30     9 128 114 42.85714   128   114
33373    32     7 177 173 42.00000   177   173
21788    18    16 172 113 40.85714   172   113
> 
>

id.Rout.make.log
yushan-n01, Mon Jun 26 01:12:22 2017
/usr/bin/make -C \
    /usr/local/workingwiki/working-directories/persistent/pe-ww/lalashan.mcmaster.ca/theobio/math/Answer_matching \
    id.Rout
Including .mk files: read.mk check.mk compare.mk cplot.mk id.mk 
Including .tex.d files: 
make: Entering directory `/1/share/local/centos/7/x86_64/workingwiki/working-directories/persistent/pe-ww/lalashan.mcmaster.ca/theobio/math/Answer_matching'
make: `id.Rout' is up to date.
make: Leaving directory `/1/share/local/centos/7/x86_64/workingwiki/working-directories/persistent/pe-ww/lalashan.mcmaster.ca/theobio/math/Answer_matching'
Make succeeded.
Mon Jun 26 01:12:22 2017

Read

Make a vector of correct answers and a matrix of student responses.

Makefile
SUPPRESS_EMPTY_ROUT_RULE=1

read.mk

read.R
rss <- read.csv(input_files[1], header=FALSE)
 
answers <- as.vector(unlist(rss[1, 2:ncol(rss)]))
 
responses <- as.matrix(rss[2:nrow(rss), 2:ncol(rss)])
ids <- rss[[1]][-1]
 
# rdsave(answers, responses, ids)

logread.Rout

read.objects.Routput
log
[1] "##############    read.objects    ################"
answers (character)
  40 
ids (factor)
responses (matrix)
  193 40

Check scores

Calculate scores for each student. This is to check that the code is working more or less correctly.

check.Routput
log
  2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21 
 32  34  27  19  22  33  34  17  32  29  32  28  24  18  18  31  31  28  13  37 
 22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41 
 33  30  25  27  27  29  36  35  33  37  24  33  39  31  24  20  30  21  30  34 
 42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61 
 25  33  17  33  29  19  29  34  33  24  14  33  28  29  12  18  33  30  29  26 
 62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81 
 23  28  30  31  31  21  13  34  29  23  36  34  19  36  37  20  37  32  30  29 
 82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 101 
 23  30  24  33  29  26  27  22  34  24  28  26  24  26  26  30  21  19  29  25 
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 
 29  26  32  30  29  22  28  29  21  31  22  15  19  31  25  35  34  38  12  26 
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 
 36  28  25  28  26  25  22  30  27  28  37  30  32  29  30  23  16  27  22  33 
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 
 31  22  33  25  34  35  27  25  33  27  21  28  23  27  26  29  29  26  27  28 
162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 
 34  28  24  34  28  28  29  29  30  30  24  21  32  23  24  33  33  35  37  36 
182 183 184 185 186 187 188 189 190 191 192 193 194 
 25  30  30  37  27  29  34  37  30  11  29  20  38

check.mk

check.R
apply(responses, 1, function(r){
	sum(r==answers)
})

Compare student answers

log, pdf

(cplot.Rout.0.png)
(cplot.Rout.1.png)
(cplot.Rout.2.png)

compare.mk

compare.R
right <- matrix(0, nrow=nrow(responses), ncol=nrow(responses))
wrong <- matrix(0, nrow=nrow(responses), ncol=nrow(responses))
ilist <- matrix(0, nrow=nrow(responses), ncol=nrow(responses))
jlist <- matrix(0, nrow=nrow(responses), ncol=nrow(responses))
 
for (i in 2:nrow(responses)){
	for(j in 1:(i-1)){
		match <- which(responses[i,]==responses[j,])
		right[i,j] <- sum(responses[i,match]==answers[match])
		wrong[i,j] <- sum(responses[i,match]!=answers[match])
		ilist[i,j] <- i
		jlist[i,j] <- j
	}
}
 
mf <- data.frame(right=as.vector(right)
	, wrong=as.vector(wrong)
	, i=as.vector(ilist)
	, j=as.vector(jlist)
)
 
mf <- subset(mf, i>0)
 
mf <- within(mf, {
	score <- 10*wrong + 7*right
})
 
# rdsave(mf, ids)

cplot.mk

cplot.R
library("ggplot2")
theme_set(theme_bw())
 
g0 <- (
	ggplot(mf, aes(x=right, y=wrong))
	# + geom_point()
	+ stat_sum(aes(size=..n..))
	# + scale_size_area()
	+ geom_abline(intercept=40, slope=-1)
	+ labs(
		x = "Shared right answers"
		, y = "Shared wrong answers"
	)
)
 
print(g0)
 
print(g0 
	+ geom_point(color="red", data=subset(mf, score>280))
)
 
print(g0 
	+ scale_size_area()
)

Identify suspicious people

id.mk

A function to print the top suspicious people.

idfuns.R
top <- function(mf, wrongWeight=2, num=6){
	mf <- within(mf, {
		score = wrongWeight*wrong + right
		jname = ids[j]
		iname = ids[i]
	})
	mf <- mf[order(mf$score, decreasing=TRUE), ]
	return(mf[1:num, ])
}

Example

id.R
# Default version
print(top(mf))
 
# The version I used to pick my four (turns out the default picks the same four in a different order)
print(top(mf, wrongWeight=10/7, num=4))

Anonymized scantron file

The first row (tagged "0") is the correct answers.

anonymous.csv
Correct,D,C,C,B,A,A,B,C,C,B,D,B,D,C,C,D,E,D,D,C,D,B,D,B,B,D,D,B,A,B,D,D,C,B,C,A,B,A,E,D
1,D,C,C,B,D,A,B,C,C,B,D,C,D,C,C,D,E,D,B,D,D,B,B,B,B,A,D,B,D,B,D,D,C,B,B,A,B,A,E,D
2,D,C,C,B,A,A,B,C,A,B,D,B,D,C,C,D,E,C,D,C,D,B,B,B,B,D,D,B,D,B,D,D,C,B,B,A,B,A,E,C
3,D,C,C,B,D,A,B,C,C,C,D,C,D,C,B,D,B,D,D,C,D,B,D,D,B,D,C,C,D,B,C,D,C,B,D,A,B,B,D,D
4,D,B,C,A,A,A,B,C,B,A,D,C,B,D,A,B,A,B,D,C,D,A,D,B,A,D,A,B,D,B,C,D,C,D,A,C,C,B,E,D
5,C,C,C,B,A,A,D,B,C,D,B,C,D,C,B,D,B,D,B,C,D,D,D,B,D,A,D,B,D,B,C,D,C,B,A,C,C,D,E,D
6,C,C,A,B,A,A,B,C,C,B,D,B,C,C,B,D,E,D,D,C,C,B,D,B,B,D,D,A,D,B,D,D,C,B,C,A,B,A,E,D
7,D,C,C,B,C,A,B,C,C,C,D,B,D,C,C,D,E,C,D,C,D,B,B,B,B,D,A,B,D,B,D,D,C,B,C,A,B,A,E,D
8,D,D,C,B,C,A,B,D,B,B,D,C,C,D,B,B,E,D,B,C,D,A,B,D,C,A,D,B,A,B,A,D,C,A,B,D,A,D,C,C
9,D,C,C,B,C,A,B,C,A,B,D,B,D,C,B,D,E,D,D,C,D,B,D,B,B,D,D,B,D,B,D,D,C,B,C,B,C,B,A,D
10,D,C,D,C,D,A,B,C,C,B,D,B,C,B,C,D,E,D,D,C,D,B,D,B,B,D,A,A,D,B,C,D,C,B,C,B,C,A,E,D
11,D,C,C,B,A,A,B,C,A,B,D,B,C,B,B,D,E,D,D,C,D,A,D,D,B,D,D,B,D,B,D,D,C,B,C,B,B,A,E,D
12,C,C,C,B,D,A,B,C,B,C,D,C,D,C,B,D,E,D,B,C,D,A,D,B,B,D,D,B,D,B,B,D,C,B,C,C,B,A,A,D
13,C,C,C,B,A,B,B,C,A,B,D,C,D,C,B,D,E,B,D,C,A,A,D,B,B,D,C,B,C,B,C,D,C,D,B,C,C,B,E,D
14,B,D,B,A,C,A,B,C,B,B,B,C,D,D,C,D,B,D,B,C,C,A,B,D,B,D,D,A,B,B,B,B,C,D,D,B,B,A,E,D
15,A,D,C,A,C,B,A,C,A,A,D,B,D,B,C,D,B,A,B,C,D,A,B,B,B,D,C,A,D,B,D,C,B,D,D,A,B,C,E,D
16,D,C,C,B,B,A,B,C,A,B,D,C,D,C,C,D,B,A,D,A,D,B,D,B,B,D,A,B,D,B,A,D,C,B,C,A,B,A,E,D
17,B,C,C,B,C,A,B,C,C,A,D,C,D,C,C,D,E,D,B,C,D,B,B,B,B,D,D,B,D,B,D,D,C,B,D,A,B,A,E,C
18,C,D,B,B,A,A,B,C,C,B,D,C,D,C,A,D,E,D,B,C,D,B,B,C,B,D,C,B,D,C,D,D,C,B,C,C,B,A,E,D
19,A,B,D,A,A,A,B,A,A,C,D,C,C,B,C,D,C,B,B,A,C,A,D,A,B,C,A,A,B,C,D,D,C,D,A,B,A,C,E,D
20,D,C,C,B,A,A,B,C,C,B,D,B,D,D,C,D,E,D,D,C,D,B,D,B,B,B,D,B,C,B,D,D,C,B,C,A,B,A,E,D
21,D,C,C,B,D,A,B,C,C,C,D,C,D,D,C,D,E,D,D,C,D,B,B,B,B,D,D,B,D,C,D,D,C,B,C,A,B,A,E,D
22,D,C,C,B,A,C,B,B,B,B,D,C,D,C,C,D,E,D,B,C,D,A,C,B,B,D,B,B,D,B,D,D,C,B,C,B,B,A,E,D
23,C,C,B,B,A,A,B,B,C,B,D,B,B,D,B,D,E,D,C,C,D,B,B,C,B,D,A,B,A,C,D,B,C,D,D,C,B,A,E,D
24,C,C,D,B,C,A,B,C,D,D,D,B,D,C,B,D,B,D,B,C,D,A,D,B,B,D,D,A,D,B,D,D,C,B,C,C,B,C,E,D
25,D,C,C,B,A,B,A,C,C,B,D,C,D,C,A,D,B,A,A,C,D,B,D,C,C,B,D,B,C,B,C,D,C,B,C,A,B,A,C,D
26,D,B,B,B,D,A,B,C,A,C,D,B,D,C,A,D,E,D,B,C,A,A,D,D,B,D,D,B,D,B,D,D,C,B,C,A,B,A,E,D
27,D,C,C,B,A,A,B,C,C,D,D,B,D,C,B,D,E,D,D,C,D,B,D,B,B,D,D,B,D,B,D,D,C,B,C,A,C,A,E,D
28,D,C,C,B,D,A,B,C,C,B,D,C,D,C,C,D,E,D,D,C,D,B,B,B,B,D,D,C,D,B,D,D,C,B,C,A,B,A,E,D
29,D,C,C,B,A,A,A,C,C,D,D,B,D,C,B,D,E,D,D,C,D,B,D,D,B,D,D,B,B,B,C,D,C,B,C,C,B,A,E,D
30,D,C,C,B,A,A,B,C,C,B,D,C,D,C,C,D,E,D,B,C,D,B,D,B,B,D,B,B,A,B,D,D,C,B,C,A,B,A,E,D
31,C,D,D,D,C,A,B,C,A,B,B,C,D,C,A,D,E,D,D,C,D,A,D,D,A,B,C,B,D,B,C,D,C,B,C,A,B,A,E,D
32,D,A,C,B,B,A,B,C,B,B,D,B,D,C,B,D,E,D,D,C,C,A,D,B,B,D,D,B,D,B,D,D,C,B,C,A,B,A,E,D
33,D,C,C,B,A,A,B,C,C,B,D,C,D,C,C,D,E,D,D,C,D,B,D,B,B,D,D,B,A,B,D,D,C,B,C,A,B,A,E,D
34,D,C,C,B,D,A,B,C,A,B,D,B,C,B,C,D,E,D,D,C,D,B,D,B,B,D,A,A,D,B,C,D,C,B,C,A,C,A,E,D
35,D,B,A,B,A,A,A,C,C,A,D,B,D,C,B,D,B,C,B,D,D,A,C,B,B,D,D,A,D,B,C,D,C,B,D,C,B,A,E,D
36,D,C,C,B,C,B,A,C,C,C,D,C,C,B,A,D,E,D,B,C,C,A,D,D,B,D,A,A,C,B,B,D,B,D,D,B,B,A,E,D
37,D,C,B,B,C,A,B,C,A,B,D,E,D,C,C,D,B,C,A,C,D,B,B,B,C,D,D,B,A,B,B,D,C,B,C,A,B,A,E,D
38,D,C,B,B,C,A,A,B,C,A,D,B,D,B,B,D,B,A,B,C,D,B,B,B,B,B,C,A,D,B,D,D,C,B,A,C,C,A,E,C
39,D,C,C,B,A,A,B,C,A,C,D,C,D,C,B,D,E,D,D,C,A,D,D,D,B,D,D,B,D,B,C,D,C,B,C,A,C,A,E,D
40,D,D,C,B,A,A,B,C,C,B,D,C,D,C,C,D,E,D,D,C,D,A,D,B,B,D,D,B,A,B,D,D,C,E,D,B,B,A,E,D
41,D,B,C,B,A,A,B,B,C,A,D,C,D,C,B,D,A,B,B,C,C,A,D,B,A,D,D,B,D,B,C,D,C,B,D,B,B,A,E,D
42,D,C,C,B,A,A,B,C,C,B,D,C,D,C,C,D,E,D,C,A,D,B,D,B,D,D,D,A,D,B,C,D,C,B,C,A,B,A,E,D
43,E,C,A,B,C,B,A,D,B,A,C,C,D,C,B,D,A,B,D,A,D,B,D,D,B,A,B,A,D,B,A,D,C,B,C,C,B,C,E,C
44,C,C,C,B,A,A,B,C,C,A,D,C,D,C,C,D,E,D,B,C,D,B,A,D,B,D,D,B,D,B,D,D,C,B,C,A,B,A,E,D
45,C,C,B,B,C,A,B,B,C,C,D,B,D,C,A,D,C,B,D,C,D,B,D,B,B,D,D,B,D,B,D,D,C,B,D,C,B,A,E,D
46,D,C,C,B,B,A,B,C,A,A,D,C,C,B,B,B,E,D,C,B,A,A,D,B,C,D,A,C,C,B,C,C,D,D,C,A,B,A,E,C
47,D,C,C,B,A,A,B,C,B,B,D,C,D,C,C,D,C,D,B,D,D,D,D,B,B,D,A,B,A,B,B,D,C,B,C,C,B,A,D,B
48,D,C,C,B,C,A,B,C,C,B,D,C,D,C,C,D,B,D,B,C,D,B,D,B,B,D,D,B,D,B,C,D,C,B,C,A,B,A,E,D
49,D,C,D,B,C,A,B,B,A,B,D,B,D,C,C,D,E,D,B,C,D,B,B,B,B,D,D,B,D,B,D,D,C,B,C,A,B,A,E,D
50,D,C,B,B,C,A,B,C,C,A,D,C,D,D,B,D,E,D,B,C,A,B,D,D,D,D,D,B,D,B,B,D,C,C,D,B,C,A,E,D
51,C,B,C,A,C,C,D,D,C,C,B,C,B,D,B,B,E,D,A,C,D,A,D,C,B,D,D,D,D,A,C,D,C,D,C,C,D,A,B,C
52,C,D,C,B,A,A,B,C,B,B,D,B,D,D,B,D,E,D,B,C,D,B,D,B,B,D,D,B,A,B,D,D,C,B,C,B,B,A,E,D
53,B,C,E,B,C,A,B,C,B,A,D,C,D,C,C,D,E,D,D,C,C,A,B,B,B,B,D,B,D,B,D,D,C,B,D,A,B,A,E,D
54,D,D,C,B,C,A,B,C,C,D,D,B,C,B,C,D,E,D,D,C,A,A,B,B,B,D,D,A,D,B,D,D,C,B,D,A,B,A,E,D
55,C,A,B,A,D,B,A,C,B,C,D,B,C,B,A,D,A,B,B,C,D,A,D,C,A,B,D,B,D,A,C,B,C,D,B,C,C,B,E,D
56,C,B,C,A,C,A,B,B,C,B,D,C,D,D,C,D,B,B,A,C,D,A,B,C,D,B,A,A,D,A,B,D,C,B,C,D,B,A,E,C
57,D,D,C,B,A,A,B,C,D,B,D,B,B,D,C,D,E,D,D,C,D,B,D,B,B,D,D,B,D,B,D,D,C,B,C,C,B,A,E,C
58,D,C,C,B,D,A,B,C,B,A,D,B,D,C,A,D,E,D,B,D,D,A,D,D,B,D,D,B,D,B,C,D,C,B,C,A,B,A,E,D
59,D,D,B,B,A,A,B,C,D,B,D,C,D,C,B,D,E,D,D,C,A,B,D,D,B,B,D,B,D,B,D,D,C,D,C,C,B,A,E,D
60,C,A,A,B,B,A,B,C,C,D,D,B,C,B,B,D,E,D,D,C,D,B,D,B,D,D,D,A,D,B,B,D,C,B,D,C,B,A,E,D
61,D,C,C,B,D,B,D,C,A,A,D,B,D,C,C,D,E,D,D,C,D,B,D,B,A,C,C,A,A,C,C,C,C,E,A,D,C,D,E,D
62,D,C,C,B,A,A,B,C,A,B,D,C,D,C,C,D,E,D,B,D,D,C,C,D,B,B,D,B,D,B,A,D,C,B,C,C,B,A,B,D
63,D,C,C,B,A,A,B,C,A,B,D,E,D,B,C,D,E,D,A,C,C,B,B,B,B,D,C,B,A,B,C,D,C,B,B,A,B,A,D,D
64,D,C,C,B,D,A,B,C,B,B,D,C,D,C,A,D,E,D,D,C,D,A,D,D,A,D,D,B,A,B,D,D,C,B,C,C,B,C,E,D
65,D,D,C,B,B,A,B,C,B,B,C,C,D,D,C,D,E,D,A,C,D,B,D,B,B,D,D,B,A,B,C,D,C,B,C,A,C,A,E,D
66,B,C,D,A,C,B,B,B,B,A,D,B,B,D,A,B,E,D,B,C,D,B,D,B,B,B,A,A,C,B,D,D,C,B,A,C,B,A,E,D
67,D,B,A,B,C,A,B,B,C,A,D,B,B,B,C,D,E,D,A,C,A,A,B,C,D,B,A,A,C,C,B,B,D,D,C,C,D,C,B,C
68,D,C,C,A,A,A,B,C,B,B,D,B,D,C,C,D,E,D,D,C,D,B,D,B,B,D,C,B,D,B,D,D,C,B,C,B,B,A,A,D
69,C,D,D,B,-,A,B,C,C,B,D,B,D,B,A,D,E,D,D,C,D,B,C,B,B,D,D,B,D,B,C,D,C,B,D,B,B,A,E,D
70,C,A,C,B,C,A,B,C,B,A,D,B,D,C,B,D,A,B,A,C,B,B,D,B,B,C,D,A,D,B,C,D,C,B,B,D,B,C,E,D
71,D,C,C,B,D,A,B,C,C,B,D,C,D,C,C,D,E,D,D,C,C,B,D,B,B,D,D,A,A,B,D,D,C,B,C,A,B,A,E,D
72,C,C,C,B,A,A,B,C,C,D,D,C,D,C,C,D,E,D,D,C,D,B,D,B,B,D,D,B,D,B,A,D,C,B,C,C,B,A,E,D
73,C,C,D,B,A,B,D,C,C,B,D,C,D,A,B,B,B,D,A,C,C,A,D,B,B,D,D,A,C,B,D,C,D,D,D,C,A,A,C,D
74,D,C,C,B,A,A,B,C,C,B,D,B,D,C,C,D,E,D,D,C,D,A,D,B,B,B,D,B,D,B,D,D,C,B,D,A,B,A,E,D
75,D,C,C,B,A,A,B,C,C,A,D,B,D,C,C,D,E,D,D,C,D,B,D,B,B,D,D,A,D,B,D,D,C,B,C,A,B,A,E,D
76,C,C,C,D,C,A,B,D,B,B,D,C,C,B,C,D,E,D,B,B,C,A,D,B,A,D,C,A,D,B,A,D,C,A,C,C,B,A,D,D
77,D,C,C,B,A,A,B,C,C,B,D,B,D,B,C,D,E,D,D,C,D,B,B,B,B,D,D,B,A,B,D,D,C,B,C,A,B,B,E,D
78,D,C,C,B,A,A,B,B,C,B,D,B,D,C,B,D,E,D,D,C,C,A,D,B,B,D,D,B,D,B,D,D,C,B,D,B,B,C,E,D
79,D,D,C,B,A,A,A,C,B,B,D,C,D,C,B,D,E,D,D,C,D,B,D,D,B,D,D,B,D,B,C,D,C,B,C,A,B,D,E,A
80,D,D,C,B,A,A,B,C,B,D,D,B,D,C,B,D,E,D,B,C,D,B,B,B,D,D,D,B,D,B,A,D,C,B,D,D,B,A,E,D
81,A,C,E,A,B,A,B,C,A,D,D,E,D,C,C,D,B,D,D,C,D,A,B,B,A,A,D,B,D,B,A,D,C,B,C,C,B,B,B,D
82,D,D,C,B,D,A,B,C,C,A,D,B,D,C,B,D,E,D,B,C,D,A,D,B,B,D,A,B,D,B,D,D,C,B,D,A,B,D,E,D
83,D,C,C,B,B,A,B,C,D,A,B,B,D,A,B,B,E,D,D,C,C,C,B,B,C,A,A,B,B,B,C,D,C,E,C,A,B,A,E,D
84,C,C,C,A,D,A,B,C,B,C,D,C,D,C,C,D,E,D,D,C,D,B,D,B,B,D,D,A,A,B,D,D,C,B,C,A,B,A,E,D
85,C,C,C,B,A,A,B,C,B,D,D,C,D,C,B,D,E,D,D,C,D,B,D,D,C,D,D,B,D,B,C,C,C,B,C,A,B,A,B,D
86,D,C,D,B,B,A,B,C,B,A,D,B,D,C,C,D,B,C,D,C,D,D,A,D,B,D,D,B,D,B,B,D,C,B,D,A,C,A,E,E
87,D,C,C,B,C,A,B,C,A,A,D,C,D,C,B,D,E,D,D,C,B,A,D,B,B,D,D,A,D,B,C,D,C,B,C,C,B,D,B,D
88,D,C,B,B,C,B,A,C,B,B,D,B,D,B,A,D,E,D,B,C,A,A,D,D,D,D,A,B,C,B,C,D,C,B,D,D,B,D,E,D
89,C,A,C,B,A,A,B,C,C,B,D,C,D,C,C,D,E,D,D,C,C,B,D,B,B,D,D,B,A,B,D,D,C,B,A,C,B,A,E,D
90,B,C,B,A,A,A,B,C,A,B,B,C,C,B,A,D,E,D,B,C,D,B,D,B,C,D,C,B,D,B,B,D,C,B,C,C,C,A,E,D
91,D,C,C,A,C,A,B,C,C,B,D,B,D,C,B,D,E,D,D,C,D,A,D,B,A,D,C,B,D,B,D,C,C,D,C,C,B,A,D,C
92,D,C,C,B,C,A,B,C,A,A,D,C,D,C,C,D,E,D,B,D,D,A,D,B,B,D,D,B,D,B,D,C,C,A,D,C,C,C,E,D
93,D,B,D,B,A,B,B,B,C,A,D,C,D,C,C,D,C,B,D,C,C,D,D,D,B,D,D,A,D,B,C,D,C,B,C,C,B,C,E,D
94,C,C,C,B,C,A,B,C,B,B,B,C,D,C,C,D,E,D,B,C,A,B,D,B,C,D,A,A,D,B,A,D,C,B,C,C,B,A,E,C
95,C,D,C,B,C,A,B,C,A,B,D,E,D,C,B,D,E,D,B,C,C,B,D,D,B,B,D,B,C,B,D,D,C,D,D,B,B,A,E,D
96,D,C,C,B,A,C,B,C,A,D,D,B,D,C,B,D,E,D,D,C,D,A,D,B,B,D,B,B,D,B,D,D,C,B,C,B,C,A,E,C
97,C,C,B,B,A,A,B,C,B,C,D,B,D,B,B,D,B,B,C,C,D,A,B,A,C,D,A,A,D,A,D,D,C,A,D,A,B,A,E,D
98,E,C,B,B,A,B,A,C,B,B,D,C,C,B,A,D,B,A,D,C,D,A,C,D,B,B,A,A,D,B,D,D,C,B,D,A,C,D,E,D
99,D,A,C,B,A,B,B,C,A,D,D,C,D,C,C,D,E,D,B,C,D,A,B,B,B,D,A,B,D,B,C,D,C,B,C,A,B,A,E,D
100,C,A,C,B,B,A,A,C,B,B,D,C,D,B,A,D,E,D,B,C,D,D,D,B,B,D,D,B,C,B,B,D,C,A,C,C,B,A,B,D
101,C,C,C,B,C,A,B,C,A,B,D,B,D,C,B,D,E,D,D,C,C,B,D,B,B,D,D,B,D,B,C,D,C,B,C,C,C,C,E,C
102,B,C,A,A,B,B,A,C,D,B,D,C,C,C,C,D,E,D,D,C,D,D,D,B,B,D,D,A,C,B,A,D,C,B,D,A,B,A,E,D
103,D,C,D,B,B,A,B,C,C,D,D,B,D,C,A,D,E,D,D,C,D,B,D,B,B,D,A,A,D,B,C,D,C,B,C,A,B,A,E,D
104,C,C,A,B,A,A,B,C,A,B,A,B,D,C,C,D,E,D,D,D,D,B,D,B,C,D,B,B,D,B,C,D,C,B,C,C,B,A,E,D
105,D,D,C,B,C,A,B,C,A,B,D,B,D,C,A,D,E,D,C,B,D,A,D,D,B,D,A,B,D,B,D,D,C,B,C,B,B,A,E,D
106,C,C,C,B,B,A,B,B,A,B,D,E,B,D,C,D,E,D,B,D,D,A,D,B,A,D,A,A,D,B,C,D,C,B,B,A,C,D,E,D
107,C,B,D,B,C,A,B,C,C,C,D,B,D,C,B,D,E,D,B,C,D,B,D,B,B,D,A,B,D,B,D,D,C,B,D,B,B,A,E,C
108,C,D,C,B,C,A,B,C,C,A,D,B,D,B,C,D,E,D,D,C,D,B,D,B,B,D,C,A,D,B,C,D,C,B,C,A,C,A,E,C
109,D,C,C,B,B,A,B,C,C,D,B,B,B,B,C,D,B,D,C,A,D,B,B,B,B,B,D,A,C,B,C,C,B,A,D,B,B,A,E,C
110,D,C,C,B,A,A,B,C,C,B,D,E,D,C,B,D,E,D,D,C,C,D,D,B,B,D,A,A,D,B,C,D,C,B,C,A,B,A,E,C
111,B,C,B,B,C,A,B,C,B,A,D,C,D,D,A,D,E,D,B,C,C,A,D,D,B,D,D,C,C,B,C,D,C,B,A,B,B,A,D,D
112,B,C,E,A,A,A,B,B,C,A,D,C,C,B,A,D,E,D,D,C,A,C,B,B,B,B,A,C,C,B,C,A,D,C,A,C,B,C,D,B
113,D,C,A,B,C,B,A,C,B,A,D,B,C,C,B,D,E,D,B,C,C,D,D,D,B,D,D,A,D,B,C,B,B,D,C,B,C,D,E,D
114,C,A,C,B,A,B,B,C,C,B,D,B,D,C,B,D,E,D,B,C,D,B,D,B,B,D,B,B,D,B,C,D,C,B,C,B,B,A,E,D
115,C,A,C,B,A,B,A,C,B,D,D,C,D,C,B,D,E,D,D,C,C,B,D,B,B,D,D,A,D,B,C,D,D,B,D,C,B,A,E,D
116,D,C,C,B,C,A,B,C,C,B,D,C,D,C,B,D,E,D,D,C,D,A,D,D,B,D,D,B,A,B,D,D,C,B,C,A,B,A,E,D
117,D,C,C,B,A,A,B,D,B,A,D,B,D,C,C,D,E,D,D,C,D,B,D,B,B,D,D,B,D,B,C,D,C,B,D,A,B,A,E,D
118,D,C,C,B,D,A,B,C,C,B,D,B,D,C,C,D,E,D,D,C,D,B,D,B,B,D,D,B,D,B,D,D,C,B,C,A,B,A,E,D
119,E,D,E,D,C,B,A,C,D,A,D,C,C,A,A,D,B,A,B,C,D,A,D,B,A,B,A,A,C,C,D,B,C,C,D,C,B,B,E,D
120,C,D,A,B,C,A,B,C,C,A,D,C,D,C,A,D,E,B,D,C,D,A,D,B,C,D,D,A,D,B,C,D,C,B,C,A,A,A,E,D
121,C,C,C,B,A,A,B,C,C,B,D,B,D,C,C,D,E,D,D,C,D,B,B,C,B,D,D,B,D,B,D,D,C,B,C,A,B,A,E,D
122,C,D,C,B,D,A,B,C,A,A,D,C,D,C,A,D,E,D,B,C,C,B,B,B,B,D,D,B,D,B,D,D,C,B,C,C,B,A,E,D
123,D,C,B,B,C,C,B,C,A,B,D,E,C,B,B,D,B,D,A,C,D,B,B,B,B,D,D,B,C,B,D,D,D,B,D,B,B,A,E,D
124,D,C,C,B,C,A,B,C,A,C,D,C,D,C,B,D,E,D,B,C,D,B,D,B,B,D,C,A,A,B,C,D,C,A,B,D,B,A,E,D
125,D,C,C,B,B,A,A,C,C,C,D,C,C,B,B,D,E,D,D,C,D,A,D,B,B,C,A,A,D,B,C,D,C,B,C,B,B,A,E,D
126,B,C,C,B,C,B,B,B,C,A,D,C,D,C,B,D,E,D,B,D,D,A,D,B,B,A,D,B,D,B,D,D,C,B,B,B,C,A,E,D
127,C,C,C,B,C,A,B,B,B,D,D,C,D,C,B,D,E,B,B,C,D,B,D,B,B,D,C,A,D,D,C,D,D,B,A,C,C,A,E,D
128,C,A,C,B,A,B,B,C,C,B,D,B,D,B,B,D,E,D,B,C,D,B,D,B,B,D,B,B,D,B,C,D,C,B,C,B,B,A,E,D
129,C,C,C,B,A,A,B,C,B,C,D,C,D,C,A,D,B,D,D,C,B,B,D,B,B,D,B,B,D,B,D,D,C,B,A,C,C,B,E,D
130,C,C,B,B,A,A,B,C,C,D,D,C,D,C,B,D,E,D,B,C,D,A,D,B,B,D,D,B,D,B,C,D,C,B,C,C,C,C,E,D
131,D,C,C,B,C,A,B,C,C,B,D,B,D,C,C,D,E,D,D,C,C,B,D,B,B,D,D,B,D,B,D,D,C,B,C,A,B,A,E,D
132,C,C,C,B,B,A,B,C,C,B,B,C,D,C,A,D,E,D,D,C,D,A,D,B,A,B,B,B,C,B,D,D,C,B,C,A,B,A,E,D
133,D,D,C,B,C,A,B,C,A,A,D,C,D,C,C,D,E,D,D,C,D,A,B,B,B,D,D,B,D,B,D,D,C,B,C,A,B,A,E,D
134,B,C,C,B,B,A,B,C,B,D,D,C,D,C,C,D,B,D,D,C,D,B,D,B,D,D,D,B,D,B,C,D,C,B,D,A,C,A,E,D
135,C,C,C,B,C,A,B,C,D,B,D,B,D,C,A,D,E,D,B,C,D,B,D,B,B,A,A,A,A,B,C,D,C,B,D,A,B,A,E,D
136,D,D,C,B,C,A,B,C,D,B,B,C,C,C,A,D,E,D,B,C,D,A,D,B,C,D,A,A,A,B,C,D,C,B,D,C,B,C,A,D
137,E,C,A,B,B,B,A,C,B,D,D,C,D,C,B,E,A,D,C,A,D,B,B,B,B,B,D,A,C,B,C,C,B,A,D,B,B,B,E,D
138,D,C,E,B,D,A,B,C,B,D,D,C,D,D,B,D,E,D,B,C,C,B,D,B,B,D,B,A,D,B,C,D,C,B,C,A,B,A,E,D
139,C,C,C,B,A,A,A,C,B,D,C,C,B,C,B,D,E,D,B,C,C,B,C,B,D,D,A,B,D,B,B,D,C,A,D,A,C,A,E,D
140,C,C,A,B,C,A,B,C,C,B,D,B,D,C,B,D,E,D,D,C,D,B,D,B,B,D,D,B,D,B,D,D,C,B,D,C,B,A,E,D
141,D,D,D,B,A,A,B,C,B,B,D,B,D,C,A,D,E,D,C,A,D,B,B,B,D,D,D,B,D,B,D,D,C,B,C,A,B,A,E,D
142,C,D,C,B,A,A,B,C,B,B,D,B,D,C,A,B,E,D,B,C,B,B,D,D,B,B,A,B,D,B,B,D,C,A,D,A,C,B,B,C
143,D,D,C,B,D,A,B,C,D,A,D,C,D,C,C,D,E,D,D,C,D,A,D,B,B,D,D,B,A,B,D,D,C,B,C,C,B,A,E,D
144,C,D,C,B,D,B,B,C,C,B,D,C,D,A,A,D,E,D,B,C,A,B,B,B,B,D,D,A,D,B,B,D,C,B,D,C,B,A,E,D
145,D,C,B,B,A,A,D,C,C,B,D,D,D,C,B,D,E,D,D,C,D,B,D,B,B,D,D,B,D,B,D,D,C,A,C,A,B,A,E,D
146,D,C,C,B,C,A,B,C,C,B,D,C,D,C,C,D,E,D,D,C,D,A,D,D,B,D,D,B,A,B,C,D,C,B,C,A,B,A,E,D
147,C,C,C,B,B,A,B,D,C,B,D,B,B,C,B,D,E,D,B,C,A,B,B,B,B,D,D,C,D,B,A,D,C,B,A,C,B,A,E,D
148,C,C,A,B,C,A,B,C,D,B,D,C,B,B,C,D,E,D,C,A,C,A,B,B,B,D,D,B,D,B,C,D,C,B,B,A,B,A,E,D
149,D,D,C,B,B,A,B,B,A,B,D,C,D,C,B,D,E,D,D,C,D,B,D,B,B,D,D,B,D,B,D,D,C,B,C,A,B,A,E,D
150,D,C,C,B,D,A,B,C,A,D,D,B,C,B,B,D,E,D,D,A,D,B,D,B,B,D,A,A,A,B,C,D,C,B,D,C,C,A,E,D
151,C,D,C,B,A,A,B,C,B,D,D,C,D,C,B,D,E,D,B,C,D,B,D,D,A,B,D,A,D,B,D,C,B,A,D,C,B,B,B,D
152,C,C,B,B,C,A,B,C,C,B,D,C,D,C,C,D,E,D,B,C,D,D,B,B,B,D,D,B,A,B,C,B,C,D,B,C,B,A,E,D
153,D,C,B,B,C,A,B,C,B,B,D,C,C,C,B,D,B,D,A,B,C,A,D,D,B,B,C,B,D,B,B,D,C,B,A,A,B,A,E,D
154,D,D,C,B,D,A,B,B,B,D,D,B,D,B,C,D,E,D,C,C,D,B,D,B,B,B,A,B,D,B,D,D,C,B,B,C,B,A,E,C
Bill,D,C,B,B,C,A,B,C,A,B,D,E,C,B,B,D,B,D,A,C,D,B,B,B,B,D,D,B,C,B,D,D,D,B,D,B,B,A,E,D
156,C,C,D,B,C,A,B,C,C,B,B,B,D,C,B,D,E,D,D,C,D,A,D,D,B,D,D,B,D,B,D,D,C,B,D,C,B,A,E,B
157,D,D,C,B,A,A,B,C,C,B,D,B,D,C,C,D,E,D,D,C,C,B,D,B,B,C,C,A,C,B,C,D,C,B,C,C,C,D,B,D
158,D,C,B,B,A,A,B,B,C,B,D,C,D,C,A,D,B,D,B,C,D,C,D,B,B,A,D,A,D,C,C,D,C,B,B,B,B,A,E,D
159,C,C,C,B,A,A,B,C,B,A,D,C,D,C,A,D,B,D,D,C,C,B,C,B,B,D,A,B,D,B,C,D,C,B,A,D,B,A,E,D
160,C,C,D,B,A,A,B,C,A,B,D,B,D,C,C,D,B,A,B,C,D,B,D,B,B,D,D,A,D,B,C,D,C,B,D,A,B,B,D,D
161,C,C,C,B,D,A,B,C,A,B,D,B,D,C,C,D,E,D,D,C,D,B,D,B,B,D,D,B,D,B,C,D,C,B,C,C,B,A,E,D
162,D,C,C,B,B,A,B,C,A,B,D,C,B,B,A,D,E,D,D,C,D,B,D,B,B,D,D,B,D,B,D,B,B,D,D,A,B,A,E,A
163,D,D,B,B,C,A,B,C,B,B,D,B,D,C,A,D,E,D,D,C,D,A,D,D,D,B,B,B,D,B,D,D,C,B,D,D,C,D,E,C
164,C,C,C,B,A,A,B,C,C,D,D,C,D,C,C,D,E,D,D,C,D,B,D,B,B,D,D,B,D,B,D,D,C,B,A,B,B,A,E,D
165,D,C,C,B,C,A,B,C,C,B,B,B,C,C,A,D,E,D,D,C,C,B,B,B,B,D,C,A,D,C,D,D,C,A,C,C,B,A,E,D
166,D,C,C,B,C,A,B,B,A,A,D,C,D,C,B,D,E,D,C,C,D,A,D,B,B,D,A,B,D,B,C,D,C,B,C,C,B,A,E,D
167,C,C,B,B,C,A,B,C,A,D,D,C,D,C,A,D,E,D,D,C,A,B,D,B,B,D,D,B,D,B,D,D,C,B,C,C,C,A,E,D
168,D,A,C,B,C,A,B,C,C,B,B,C,D,B,C,D,E,D,D,C,C,A,D,B,B,D,D,B,A,B,C,D,C,A,D,C,B,A,E,D
169,D,C,C,B,A,A,D,C,C,B,B,D,D,C,B,D,E,D,D,B,C,D,D,B,B,D,D,B,D,B,D,D,C,B,D,A,B,A,B,D
170,D,C,C,B,A,B,B,C,A,B,D,B,B,D,B,D,B,D,D,C,D,A,D,B,B,D,D,B,D,D,D,D,C,B,C,C,B,A,E,D
171,C,D,A,B,D,A,B,C,A,B,D,C,D,C,B,D,B,B,D,C,D,A,D,B,A,B,D,A,D,B,B,D,C,B,D,A,B,A,E,D
172,D,C,B,B,C,B,A,C,B,C,D,B,C,C,B,D,E,D,B,C,C,D,D,D,B,D,B,A,D,B,C,B,C,D,C,B,B,A,E,D
173,D,C,C,B,B,A,B,C,B,B,D,D,D,C,C,D,E,D,D,C,D,A,D,B,B,D,D,A,D,B,A,D,C,B,C,C,B,A,E,D
174,C,D,C,A,A,A,B,C,C,C,D,C,D,C,B,D,E,D,B,C,C,D,D,B,D,D,C,A,D,B,C,D,C,B,A,C,B,C,E,D
175,C,B,D,B,A,A,B,B,A,A,D,B,D,C,A,D,E,B,D,C,D,B,A,B,B,B,D,A,A,B,D,C,B,A,C,C,B,A,E,C
176,C,C,D,B,D,A,B,C,C,B,D,C,D,C,C,D,E,D,D,C,D,B,B,B,B,D,D,A,A,B,D,D,C,B,D,A,B,A,E,D
177,D,C,C,B,B,A,B,C,B,B,D,B,D,C,C,D,E,D,D,C,D,A,D,B,B,D,D,A,D,B,A,D,C,B,C,C,B,A,E,D
178,D,C,C,B,A,A,B,C,D,D,D,B,D,C,B,D,E,D,D,C,D,D,B,B,B,D,D,B,A,B,D,D,C,B,C,A,B,A,E,D
179,D,C,C,B,D,A,B,C,C,B,D,B,D,C,C,D,E,D,D,C,D,B,D,B,B,D,A,B,A,B,D,D,C,B,C,C,B,A,E,D
180,D,C,C,B,A,A,B,C,C,C,D,B,D,C,C,D,E,D,D,C,D,B,D,B,B,C,D,B,D,B,D,D,C,B,C,C,B,A,E,D
181,E,D,B,B,D,A,B,D,C,D,D,E,D,C,C,D,E,D,D,D,D,B,D,B,B,D,A,B,A,B,C,D,C,B,D,C,C,B,E,C
182,C,D,C,B,A,A,B,C,C,A,D,C,D,B,C,D,E,D,D,C,C,B,D,B,B,D,D,A,D,B,D,D,C,B,C,C,C,A,E,D
183,D,C,C,B,C,C,A,C,D,B,D,C,C,B,C,D,E,D,B,C,C,B,D,B,B,D,D,B,D,B,D,D,C,B,C,A,B,A,E,D
184,D,C,C,B,D,A,B,C,C,B,D,C,D,C,C,D,E,D,B,C,D,B,D,B,B,D,D,B,A,B,D,D,C,B,C,A,B,A,E,D
185,D,D,C,B,A,A,B,C,B,B,D,B,D,C,B,D,E,D,B,C,D,B,D,B,B,D,D,A,D,B,B,D,C,D,C,B,C,D,A,C
186,C,C,C,B,C,A,B,C,C,B,D,B,D,C,B,D,E,D,D,D,C,A,D,B,A,D,D,A,D,C,D,D,C,B,C,A,B,C,E,D
187,C,C,C,B,B,A,B,C,C,B,D,C,D,C,C,D,E,D,D,C,D,B,B,B,B,D,D,B,D,B,D,D,C,B,D,A,B,A,E,D
188,D,C,C,B,B,A,B,C,C,B,D,B,D,C,C,D,E,D,D,C,D,B,B,B,B,D,D,B,A,B,D,D,C,B,D,A,B,A,E,D
189,D,C,B,B,D,B,C,C,A,B,D,B,D,C,B,B,E,D,D,C,D,B,D,B,B,D,B,B,A,C,D,D,C,B,C,C,B,A,E,D
190,A,A,A,A,C,A,B,C,B,B,D,B,B,D,B,D,A,A,B,B,C,C,C,D,B,A,A,A,C,C,A,C,C,A,A,C,B,D,E,B
191,D,C,C,A,D,A,B,B,C,C,D,B,D,D,B,D,E,D,D,C,D,B,D,D,B,D,B,B,C,B,D,D,C,B,A,C,B,A,E,D
192,C,C,D,B,A,A,B,C,C,A,D,C,C,C,C,D,B,D,B,B,C,D,B,B,B,D,A,B,D,C,C,D,C,B,D,B,C,C,E,B
193,D,C,C,B,A,A,B,C,C,B,D,B,D,C,C,D,E,D,B,C,D,B,D,B,B,D,D,B,A,D,D,D,C,B,C,A,B,A,E,D